@salesforce/afv-skills 1.65.0 → 1.65.1
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.
- package/package.json +1 -1
- package/skills/field-service-data-capture-form-deployer-configure/SKILL.md +2 -23
- package/skills/field-service-data-capture-form-designer-configure/SKILL.md +3 -13
- package/skills/field-service-mobile-branding-configure/SKILL.md +3 -17
- package/skills/field-service-objective-designer-configure/SKILL.md +379 -72
- package/skills/field-service-prework-brief-deployer-configure/SKILL.md +537 -10
- package/skills/field-service-scheduling-policy-designer-query/SKILL.md +1093 -65
- package/skills/field-service-sobject-create-configure/SKILL.md +213 -13
- package/skills/field-service-voice-to-form-configure/SKILL.md +11 -40
- package/skills/field-service-work-rule-designer-configure/SKILL.md +95 -121
- package/skills/agentforce-gpt-email-generation-configure/SKILL.md +0 -312
- package/skills/agentforce-wizard-ui-forecasting-analytics-components-configure/SKILL.md +0 -64
- package/skills/agentforce-wizard-ui-sales-einstein-components-configure/SKILL.md +0 -46
- package/skills/automation-company-profile-info-query/SKILL.md +0 -51
- package/skills/automation-digital-wallet-configure/SKILL.md +0 -689
- package/skills/automation-flow-coordinate/SKILL.md +0 -95
- package/skills/automation-flow-coordinate/references/elements/action-call/action-call.md +0 -1569
- package/skills/automation-flow-coordinate/references/elements/action-call/conversation-messaging.md +0 -96
- package/skills/automation-flow-coordinate/references/elements/action-call/examples/send-sms-message.json +0 -23
- package/skills/automation-flow-coordinate/references/elements/action-call/examples/send-to-journey-no-fields.json +0 -31
- package/skills/automation-flow-coordinate/references/elements/action-call/send-to-journey.md +0 -179
- package/skills/automation-flow-coordinate/references/elements/exit-rule/examples/event-email-link-click.json +0 -13
- package/skills/automation-flow-coordinate/references/elements/exit-rule/exit-rule.md +0 -83
- package/skills/automation-flow-coordinate/references/elements/forward-to-bot-or-agent/examples/forward-to-bot-or-agent.json +0 -69
- package/skills/automation-flow-coordinate/references/elements/forward-to-bot-or-agent/forward-to-bot-or-agent.md +0 -274
- package/skills/automation-flow-coordinate/references/elements/start/audience-common.md +0 -192
- package/skills/automation-flow-coordinate/references/elements/start/automation-event-triggered.md +0 -130
- package/skills/automation-flow-coordinate/references/elements/start/data-cloud-data-change-triggered.md +0 -92
- package/skills/automation-flow-coordinate/references/elements/start/form-submission-triggered.md +0 -88
- package/skills/automation-flow-coordinate/references/elements/start/segment-triggered.md +0 -152
- package/skills/automation-flow-coordinate/references/elements/start/start.md +0 -539
- package/skills/automation-flow-coordinate/references/elements/subflow/subflow.md +0 -152
- package/skills/automation-flow-coordinate/references/elements/wait/wait.md +0 -497
- package/skills/automation-flow-coordinate/references/recipes/author/author.md +0 -868
- package/skills/automation-flow-coordinate/references/recipes/summarize/element-generic.md +0 -300
- package/skills/automation-flow-coordinate/references/recipes/summarize/reference-resolution.md +0 -292
- package/skills/automation-flow-coordinate/references/recipes/summarize/summarize.md +0 -323
- package/skills/automation-flow-coordinate/references/recipes/testing/examples/debug-output-template.md +0 -109
- package/skills/automation-flow-coordinate/references/recipes/testing/shape.md +0 -219
- package/skills/automation-flow-coordinate/references/recipes/testing/shared-stages/intent-analyzer.md +0 -180
- package/skills/automation-flow-coordinate/references/recipes/testing/workflows/debug.md +0 -175
- package/skills/automation-flow-coordinate/references/recipes/testing/workflows/promote.md +0 -255
- package/skills/automation-flow-coordinate/references/recipes/testing/workflows/save-debug.md +0 -212
- package/skills/automation-flow-coordinate/references/resources/variable/variable.md +0 -171
- package/skills/automation-flow-coordinate/references/shared/anti-patterns.md +0 -786
- package/skills/automation-flow-coordinate/references/shared/end/end.md +0 -267
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/README.md +0 -69
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/predictions.jsonl +0 -80
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/prompts.jsonl +0 -116
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/flow-type-resolver.md +0 -321
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/taxonomy.json +0 -320
- package/skills/automation-flow-coordinate/references/shared/server-functions.md +0 -597
- package/skills/automotive-cloud-appraisal-management-settings-configure/SKILL.md +0 -69
- package/skills/automotive-cloud-dealer-essentials-configure/SKILL.md +0 -78
- package/skills/automotive-cloud-ground-agent-data-pipelines-configure/SKILL.md +0 -373
- package/skills/automotive-cloud-ground-mfg-agent-data-pipelines-configure/SKILL.md +0 -273
- package/skills/automotive-cloud-mfg-agent-data-pipelines-configure/SKILL.md +0 -259
- package/skills/automotive-cloud-mfg-sales-concierge-agent-create/SKILL.md +0 -369
- package/skills/automotive-cloud-mfg-sales-concierge-foundation-configure/SKILL.md +0 -542
- package/skills/automotive-cloud-mfg-sales-concierge-foundation-coordinate/SKILL.md +0 -159
- package/skills/automotive-cloud-mfg-sales-concierge-orchestrator-agent-create/SKILL.md +0 -349
- package/skills/automotive-cloud-mfg-sales-concierge-orchestrator-configure/SKILL.md +0 -505
- package/skills/automotive-cloud-sales-concierge-agent-create/SKILL.md +0 -380
- package/skills/automotive-cloud-sales-concierge-foundation-configure/SKILL.md +0 -567
- package/skills/automotive-cloud-sales-concierge-foundation-coordinate/SKILL.md +0 -159
- package/skills/automotive-cloud-sales-concierge-orchestrator-agent-create/SKILL.md +0 -360
- package/skills/automotive-cloud-sales-concierge-orchestrator-configure/SKILL.md +0 -539
- package/skills/automotive-cloud-sales-concierge-search-grounding-configure/SKILL.md +0 -358
- package/skills/commerce-b2b-merchant-quote-configure/SKILL.md +0 -602
- package/skills/commerce-b2b-store-configure/SKILL.md +0 -251
- package/skills/commerce-credit-memo-create/SKILL.md +0 -139
- package/skills/commerce-delivery-business-hours-configure/SKILL.md +0 -277
- package/skills/commerce-delivery-estimation-apply/SKILL.md +0 -155
- package/skills/commerce-delivery-estimation-configure/SKILL.md +0 -377
- package/skills/commerce-delivery-routing-specs-integrate/SKILL.md +0 -174
- package/skills/commerce-estimate-bopis-query/SKILL.md +0 -279
- package/skills/commerce-estimate-delivery-date-query/SKILL.md +0 -349
- package/skills/commerce-fees-apply/SKILL.md +0 -227
- package/skills/commerce-fulfillment-routing-analyze/SKILL.md +0 -200
- package/skills/commerce-guest-buyer-create/SKILL.md +0 -173
- package/skills/commerce-location-bopis-configure/SKILL.md +0 -378
- package/skills/commerce-location-business-hours-configure/SKILL.md +0 -235
- package/skills/commerce-location-delivery-processing-time-configure/SKILL.md +0 -309
- package/skills/commerce-location-graph-integrate/SKILL.md +0 -131
- package/skills/commerce-location-shipping-carrier-method-configure/SKILL.md +0 -755
- package/skills/commerce-location-temporary-operating-hours-configure/SKILL.md +0 -331
- package/skills/commerce-merchant-buyer-groups-configure/SKILL.md +0 -579
- package/skills/commerce-merchant-buyer-user-onboarding-create/SKILL.md +0 -626
- package/skills/commerce-merchant-catalog-configure/SKILL.md +0 -614
- package/skills/commerce-merchant-extension-provider-configure/SKILL.md +0 -368
- package/skills/commerce-merchant-insights-account-health-churn-analyze/SKILL.md +0 -118
- package/skills/commerce-merchant-insights-inventory-returns-analyze/SKILL.md +0 -65
- package/skills/commerce-merchant-insights-order-shopper-get/SKILL.md +0 -90
- package/skills/commerce-merchant-insights-product-performance-analyze/SKILL.md +0 -72
- package/skills/commerce-merchant-insights-query/SKILL.md +0 -279
- package/skills/commerce-merchant-storefront-guest-access-configure/SKILL.md +0 -656
- package/skills/commerce-order-summary-change-apply/SKILL.md +0 -375
- package/skills/commerce-product-details-get/SKILL.md +0 -363
- package/skills/commerce-product-search/SKILL.md +0 -563
- package/skills/commerce-react-storefront-create/SKILL.md +0 -350
- package/skills/commerce-return-order-summary-create/SKILL.md +0 -513
- package/skills/commerce-search-relevance-analyze/SKILL.md +0 -757
- package/skills/commerce-temporary-processing-time-override-create/SKILL.md +0 -274
- package/skills/communications-initial-setup-configure/SKILL.md +0 -630
- package/skills/communications-multisite-configure/SKILL.md +0 -571
- package/skills/communications-revenue-cloud-settings-configure/SKILL.md +0 -74
- package/skills/communications-smb-fiber-catalog-create/SKILL.md +0 -413
- package/skills/communications-tmf-integrate/SKILL.md +0 -1368
- package/skills/consumer-goods-visit-activity-act4-questions-assign/SKILL.md +0 -448
- package/skills/consumer-goods-visit-activity-act5-standard-create/SKILL.md +0 -269
- package/skills/consumer-goods-visit-activity-act6-assortment-configure/SKILL.md +0 -271
- package/skills/consumer-goods-visit-activity-act7-account-scoping-create/SKILL.md +0 -382
- package/skills/consumer-goods-visit-activity-act8-plan-attach-create/SKILL.md +0 -373
- package/skills/consumer-goods-visit-activity-act9-proof-validate/SKILL.md +0 -389
- package/skills/consumer-goods-visit-and-activity-act1-specification-create/SKILL.md +0 -338
- package/skills/consumer-goods-visit-and-activity-act2-template-create/SKILL.md +0 -547
- package/skills/consumer-goods-visit-and-activity-act3-definition-create/SKILL.md +0 -346
- package/skills/consumer-goods-visit-and-activity-configure/SKILL.md +0 -1110
- package/skills/crm-analytics-adoption-insights-configure/SKILL.md +0 -224
- package/skills/crm-analytics-custom-report-type-lightning-configure/SKILL.md +0 -418
- package/skills/crm-analytics-dashboards-configure/SKILL.md +0 -731
- package/skills/crm-analytics-operational-analytics-metadata-bridge-migrate/SKILL.md +0 -233
- package/skills/crm-analytics-report-notifications-ui-configure/SKILL.md +0 -184
- package/skills/crm-analytics-sharing-inheritance-coverage-analyze/SKILL.md +0 -167
- package/skills/crm-analytics-sonic-getting-started-configure/SKILL.md +0 -55
- package/skills/crm-analytics-tableau-next-app-deploy/SKILL.md +0 -1350
- package/skills/crm-analytics-tableau-next-c360-basemodel-validate/SKILL.md +0 -1862
- package/skills/crm-analytics-tableau-next-datacloud-validate/SKILL.md +0 -83
- package/skills/crm-analytics-tableau-next-provisioning-validate/SKILL.md +0 -81
- package/skills/data360-activation-create/SKILL.md +0 -104
- package/skills/data360-activation-external-platform-get/SKILL.md +0 -49
- package/skills/data360-activation-target-create/SKILL.md +0 -93
- package/skills/data360-activation-v2-create/SKILL.md +0 -456
- package/skills/data360-audience-dmo-get/SKILL.md +0 -38
- package/skills/data360-calculated-affinity-create/SKILL.md +0 -82
- package/skills/data360-calculated-insight-create/SKILL.md +0 -148
- package/skills/data360-catalog-metadata-create/SKILL.md +0 -183
- package/skills/data360-code-extension-create/SKILL.md +0 -115
- package/skills/data360-communication-capping-create/SKILL.md +0 -227
- package/skills/data360-connection-create/SKILL.md +0 -491
- package/skills/data360-content-lens-create/SKILL.md +0 -181
- package/skills/data360-data-action-create/SKILL.md +0 -126
- package/skills/data360-data-action-target-create/SKILL.md +0 -181
- package/skills/data360-data-clean-room-create/SKILL.md +0 -238
- package/skills/data360-data-governance-create/SKILL.md +0 -746
- package/skills/data360-data-graph-create/SKILL.md +0 -82
- package/skills/data360-data-harmonized-model-object-reference-create/SKILL.md +0 -38
- package/skills/data360-data-lake-object-create/SKILL.md +0 -207
- package/skills/data360-data-model-object-catalog-get/SKILL.md +0 -49
- package/skills/data360-data-model-object-create/SKILL.md +0 -128
- package/skills/data360-data-model-object-mapping-create/SKILL.md +0 -106
- package/skills/data360-data-space-create/SKILL.md +0 -161
- package/skills/data360-data-streams-create/SKILL.md +0 -324
- package/skills/data360-engagement-signal-get/SKILL.md +0 -38
- package/skills/data360-experiment-create/SKILL.md +0 -82
- package/skills/data360-goal-based-campaign-create/SKILL.md +0 -192
- package/skills/data360-harmonization-process-history-get/SKILL.md +0 -38
- package/skills/data360-harmonized-unstructured-dmo-create/SKILL.md +0 -84
- package/skills/data360-identity-resolution-create/SKILL.md +0 -115
- package/skills/data360-intelligent-document-processing-create/SKILL.md +0 -148
- package/skills/data360-knowledge-graph-construction-create/SKILL.md +0 -93
- package/skills/data360-knowledge-graph-create/SKILL.md +0 -216
- package/skills/data360-knowledge-space-mcp-configure/SKILL.md +0 -475
- package/skills/data360-machine-learning-mcp-configure/SKILL.md +0 -697
- package/skills/data360-multi-org-mcp-configure/SKILL.md +0 -117
- package/skills/data360-secondary-index-mcp-configure/SKILL.md +0 -126
- package/skills/data360-segment-mcp-configure/SKILL.md +0 -159
- package/skills/data360-semantic-calculated-dimension-mcp-configure/SKILL.md +0 -93
- package/skills/data360-semantic-calculated-measurement-mcp-configure/SKILL.md +0 -93
- package/skills/data360-semantic-data-object-mcp-configure/SKILL.md +0 -93
- package/skills/data360-semantic-dimension-mcp-configure/SKILL.md +0 -38
- package/skills/data360-semantic-engine-mcp-configure/SKILL.md +0 -62
- package/skills/data360-semantic-measurement-mcp-configure/SKILL.md +0 -38
- package/skills/data360-semantic-metric-mcp-configure/SKILL.md +0 -93
- package/skills/data360-semantic-model-mcp-configure/SKILL.md +0 -115
- package/skills/data360-standard-mapping-mcp-configure/SKILL.md +0 -38
- package/skills/data360-tenant-lifecycle-mcp-configure/SKILL.md +0 -73
- package/skills/experience-afv-query/SKILL.md +0 -234
- package/skills/experience-agentforce-vibes-in-react-configure/SKILL.md +0 -63
- package/skills/experience-apex-components-configure/SKILL.md +0 -69
- package/skills/experience-apex-pages-configure/SKILL.md +0 -107
- package/skills/experience-app-home-configure/SKILL.md +0 -76
- package/skills/experience-aura-lightning-out-access-configure/SKILL.md +0 -58
- package/skills/experience-briefcase-configure/SKILL.md +0 -287
- package/skills/experience-community-flexi-page-list-create/SKILL.md +0 -74
- package/skills/experience-community-template-definition-list-query/SKILL.md +0 -48
- package/skills/experience-community-theme-definition-list-query/SKILL.md +0 -38
- package/skills/experience-content-assets-configure/SKILL.md +0 -86
- package/skills/experience-custom-domain-create/SKILL.md +0 -727
- package/skills/experience-defer-rendering-workspace-page-setup-configure/SKILL.md +0 -41
- package/skills/experience-field-service-app-builder-configure/SKILL.md +0 -187
- package/skills/experience-flow-category-configure/SKILL.md +0 -117
- package/skills/experience-formula-configure/SKILL.md +0 -358
- package/skills/experience-global-actions-configure/SKILL.md +0 -69
- package/skills/experience-global-publisher-layouts-configure/SKILL.md +0 -79
- package/skills/experience-instrumentation-configure/SKILL.md +0 -64
- package/skills/experience-lex-engagement-configure/SKILL.md +0 -50
- package/skills/experience-lightning-bolt-open/SKILL.md +0 -12
- package/skills/experience-lightning-out-configure/SKILL.md +0 -129
- package/skills/experience-lightning-preview-configure/SKILL.md +0 -67
- package/skills/experience-lightning-types-query/SKILL.md +0 -98
- package/skills/experience-malware-scan-configure/SKILL.md +0 -71
- package/skills/experience-my-salesforce-configure/SKILL.md +0 -126
- package/skills/experience-navigation-menus-configure/SKILL.md +0 -235
- package/skills/experience-notification-types-configure/SKILL.md +0 -206
- package/skills/experience-notifications-configure/SKILL.md +0 -75
- package/skills/experience-record-discovery-query/SKILL.md +0 -227
- package/skills/experience-regenerate-previews-open/SKILL.md +0 -94
- package/skills/experience-sales-cloud-mab-configure/SKILL.md +0 -254
- package/skills/experience-schema-builder-open/SKILL.md +0 -38
- package/skills/experience-simple-record-home-configure/SKILL.md +0 -110
- package/skills/experience-static-resources-configure/SKILL.md +0 -74
- package/skills/field-service-setup-coordinate/SKILL.md +0 -62
- package/skills/field-service-work-plan-configure/SKILL.md +0 -253
- package/skills/fsc-actionable-segmentation-settings-configure/SKILL.md +0 -180
- package/skills/fsc-digital-origination-bre-decision-matrix-foundation-create/SKILL.md +0 -196
- package/skills/fsc-digital-origination-bre-disclosures-consent-configure/SKILL.md +0 -106
- package/skills/fsc-digital-origination-bre-document-upload-configure/SKILL.md +0 -96
- package/skills/fsc-digital-origination-bre-permissions-assign/SKILL.md +0 -111
- package/skills/fsc-digital-origination-bre-setup-coordinate/SKILL.md +0 -250
- package/skills/fsc-digital-origination-bre-stp-eligibility-configure/SKILL.md +0 -122
- package/skills/fsc-digital-origination-coordinate/SKILL.md +0 -653
- package/skills/fsc-digital-origination-demo-run/SKILL.md +0 -225
- package/skills/fsc-digital-origination-execution-guardrails-validate/SKILL.md +0 -112
- package/skills/fsc-digital-origination-initial-setup-configure/SKILL.md +0 -396
- package/skills/fsc-digital-origination-pricing-setup-coordinate/SKILL.md +0 -336
- package/skills/fsc-digital-origination-pricing-setup-data-foundation-create/SKILL.md +0 -208
- package/skills/fsc-digital-origination-pricing-setup-procedure-create/SKILL.md +0 -375
- package/skills/fsc-digital-origination-product-setup-act1-permissions-assign/SKILL.md +0 -83
- package/skills/fsc-digital-origination-product-setup-coordinate/SKILL.md +0 -248
- package/skills/fsc-digital-origination-sample-data-create/SKILL.md +0 -206
- package/skills/fsc-document-checklist-settings-configure/SKILL.md +0 -57
- package/skills/fsc-flexible-hierarchy-configure/SKILL.md +0 -148
- package/skills/fsc-flexible-hierarchy-foundation-configure/SKILL.md +0 -1430
- package/skills/fsc-flexible-hierarchy-graph-config-create/SKILL.md +0 -471
- package/skills/fsc-flexible-hierarchy-rule-based-graph-deploy/SKILL.md +0 -429
- package/skills/fsc-pricing-product-configurator-configure/SKILL.md +0 -150
- package/skills/fsc-pricing-salesforce-omnistudio-switch/SKILL.md +0 -123
- package/skills/fsc-product-act2-catalog-categories-create/SKILL.md +0 -82
- package/skills/fsc-product-act3-attributes-create/SKILL.md +0 -249
- package/skills/fsc-product-act4-classification-assignment-create/SKILL.md +0 -196
- package/skills/fsc-product-act5-considerations-get/SKILL.md +0 -44
- package/skills/fsc-stage-management-apex-flow-deploy/SKILL.md +0 -384
- package/skills/fsc-stage-management-compliant-data-sharing-configure/SKILL.md +0 -144
- package/skills/fsc-stage-management-decision-matrices-create/SKILL.md +0 -107
- package/skills/fsc-stage-management-definition-assignments-create/SKILL.md +0 -189
- package/skills/fsc-stage-management-definition-create/SKILL.md +0 -108
- package/skills/fsc-stage-management-permissions-assign/SKILL.md +0 -143
- package/skills/fsc-stage-management-transitions-configure/SKILL.md +0 -139
- package/skills/health-cloud-appt-booking-config-configure/SKILL.md +0 -135
- package/skills/health-cloud-appt-booking-url-config-configure/SKILL.md +0 -134
- package/skills/health-cloud-care-provider-affl-role-config-configure/SKILL.md +0 -136
- package/skills/health-cloud-care-provider-search-config-configure/SKILL.md +0 -134
- package/skills/health-cloud-care-requests-create/SKILL.md +0 -178
- package/skills/health-cloud-initial-configure/SKILL.md +0 -511
- package/skills/health-cloud-patient-appointment-scheduling-configure/SKILL.md +0 -1374
- package/skills/health-cloud-provider-search-settings-configure/SKILL.md +0 -924
- package/skills/health-cloud-referral-management-coordinate/SKILL.md +0 -513
- package/skills/health-cloud-timeline-configure/SKILL.md +0 -622
- package/skills/health-cloud-virtual-visit-config-configure/SKILL.md +0 -135
- package/skills/industries-account-score-settings-query/SKILL.md +0 -78
- package/skills/industries-actionable-list-data-sources-dmo-configure/SKILL.md +0 -177
- package/skills/industries-ad-product-availability-search/SKILL.md +0 -399
- package/skills/industries-advanced-account-forecast-settings-configure/SKILL.md +0 -628
- package/skills/industries-advanced-therapy-management-settings-configure/SKILL.md +0 -73
- package/skills/industries-atm-settings-starter-configure/SKILL.md +0 -76
- package/skills/industries-batch-document-ai-configure/SKILL.md +0 -196
- package/skills/industries-behavioral-health-app-settings-configure/SKILL.md +0 -71
- package/skills/industries-branch-management-settings-configure/SKILL.md +0 -89
- package/skills/industries-bre-decision-table-access-configure/SKILL.md +0 -367
- package/skills/industries-brokerage-settings-configure/SKILL.md +0 -41
- package/skills/industries-calendar-sync-settings-configure/SKILL.md +0 -89
- package/skills/industries-care-request-settings-configure/SKILL.md +0 -218
- package/skills/industries-case-management-intelligence-settings-configure/SKILL.md +0 -54
- package/skills/industries-catalog-process-attributes-products-configure/SKILL.md +0 -380
- package/skills/industries-catalog-process-fulfillment-configure/SKILL.md +0 -216
- package/skills/industries-catalog-process-intake-configure/SKILL.md +0 -219
- package/skills/industries-catalog-process-knowledge-configure/SKILL.md +0 -153
- package/skills/industries-catalog-process-preprocessor-configure/SKILL.md +0 -168
- package/skills/industries-cds-general-settings-configure/SKILL.md +0 -69
- package/skills/industries-claim-financial-settings-configure/SKILL.md +0 -169
- package/skills/industries-clinical-data-model-settings-configure/SKILL.md +0 -136
- package/skills/industries-clinical-data-model-settings-starter-configure/SKILL.md +0 -105
- package/skills/industries-collection-plan-settings-configure/SKILL.md +0 -132
- package/skills/industries-comms-service-console-settings-configure/SKILL.md +0 -159
- package/skills/industries-compliance-configure/SKILL.md +0 -102
- package/skills/industries-compliance-document-extraction-setup-configure/SKILL.md +0 -76
- package/skills/industries-contact-center-app-layout-configure/SKILL.md +0 -88
- package/skills/industries-contact-center-components-configure/SKILL.md +0 -96
- package/skills/industries-contact-center-path-knowledge-configure/SKILL.md +0 -95
- package/skills/industries-contact-center-user-access-assign/SKILL.md +0 -96
- package/skills/industries-course-waitlist-config-configure/SKILL.md +0 -162
- package/skills/industries-crisis-center-settings-configure/SKILL.md +0 -84
- package/skills/industries-custom-object-settings-configure/SKILL.md +0 -94
- package/skills/industries-data-cloud-integration-configure/SKILL.md +0 -88
- package/skills/industries-data-space-feature-mappings-configure/SKILL.md +0 -245
- package/skills/industries-decision-matrix-builder-configure/SKILL.md +0 -78
- package/skills/industries-decision-table-hbase-configure/SKILL.md +0 -87
- package/skills/industries-decision-table-version-configure/SKILL.md +0 -74
- package/skills/industries-decision-tables-builder-configure/SKILL.md +0 -253
- package/skills/industries-decision-tables-configure/SKILL.md +0 -439
- package/skills/industries-energy-utilities-configure/SKILL.md +0 -251
- package/skills/industries-eu-cloud-multisite-configure/SKILL.md +0 -1008
- package/skills/industries-eu-new-connections-configure/SKILL.md +0 -30
- package/skills/industries-explainability-msg-template-configure/SKILL.md +0 -135
- package/skills/industries-expression-set-message-token-configure/SKILL.md +0 -135
- package/skills/industries-field-service-settings-configure/SKILL.md +0 -82
- package/skills/industries-form-framework-settings-configure/SKILL.md +0 -30
- package/skills/industries-fsc-ai-settings-configure/SKILL.md +0 -57
- package/skills/industries-fsc-association-engine-settings-configure/SKILL.md +0 -172
- package/skills/industries-fsc-b2b-settings-configure/SKILL.md +0 -61
- package/skills/industries-fsc-insurance-settings-configure/SKILL.md +0 -58
- package/skills/industries-fsc-visa-fulfillment-setup-configure/SKILL.md +0 -103
- package/skills/industries-fsc-wealth-agent-settings-configure/SKILL.md +0 -117
- package/skills/industries-fsc-wealth-settings-configure/SKILL.md +0 -99
- package/skills/industries-fundraising-gift-entry-settings-configure/SKILL.md +0 -120
- package/skills/industries-fundraising-rfm-configure/SKILL.md +0 -128
- package/skills/industries-fundraising-settings-configure/SKILL.md +0 -145
- package/skills/industries-fundraising-source-code-gen-configure/SKILL.md +0 -299
- package/skills/industries-google-maps-api-key-settings-configure/SKILL.md +0 -87
- package/skills/industries-grantmaking-intelligence-settings-open/SKILL.md +0 -58
- package/skills/industries-hc-score-category-settings-configure/SKILL.md +0 -167
- package/skills/industries-health-engagement-settings-configure/SKILL.md +0 -218
- package/skills/industries-home-health-agentforce-setup-configure/SKILL.md +0 -131
- package/skills/industries-home-health-bundling-policy-create/SKILL.md +0 -50
- package/skills/industries-home-health-entity-labels-configure/SKILL.md +0 -29
- package/skills/industries-home-health-fsl-package-deploy/SKILL.md +0 -71
- package/skills/industries-home-health-fsl-settings-validate/SKILL.md +0 -27
- package/skills/industries-home-health-guided-setup-care-and-skill-get/SKILL.md +0 -80
- package/skills/industries-home-health-guided-setup-configure/SKILL.md +0 -836
- package/skills/industries-home-health-guided-setup-enable-org-fsl-get/SKILL.md +0 -55
- package/skills/industries-home-health-guided-setup-get-org-ready-get/SKILL.md +0 -61
- package/skills/industries-home-health-licenses-assign/SKILL.md +0 -27
- package/skills/industries-home-health-operating-hours-create/SKILL.md +0 -40
- package/skills/industries-home-health-scheduling-policy-create/SKILL.md +0 -41
- package/skills/industries-home-health-service-objective-create/SKILL.md +0 -22
- package/skills/industries-home-health-skills-create/SKILL.md +0 -31
- package/skills/industries-home-health-users-create/SKILL.md +0 -29
- package/skills/industries-icm-act3-toggles-configure/SKILL.md +0 -198
- package/skills/industries-icm-act5-genai-suggested-assessments-configure/SKILL.md +0 -361
- package/skills/industries-icm-act6-mcg-integration-configure/SKILL.md +0 -550
- package/skills/industries-integrated-care-management-configure/SKILL.md +0 -168
- package/skills/industries-object-enablement-configure/SKILL.md +0 -86
- package/skills/industries-tpm-system-processing-service-configure/SKILL.md +0 -64
- package/skills/integration-apex-settings-configure/SKILL.md +0 -61
- package/skills/marketing-e360-email-archiving-configure/SKILL.md +0 -73
- package/skills/platform-custom-permissions-configure/SKILL.md +0 -687
- package/skills/platform-label-workbench-import-create/SKILL.md +0 -67
- package/skills/platform-privacy-agent-settings-configure/SKILL.md +0 -752
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: crm-analytics-operational-analytics-metadata-bridge-migrate
|
|
3
|
-
description: "Use this skill when users want to oA->Tableau Next metadata bridge wizard. Trigger when users mention operational, analytics, metadata, bridge, operational analytics metadata bridge."
|
|
4
|
-
metadata:
|
|
5
|
-
version: "1.0"
|
|
6
|
-
accessCheck: "Insights.userCanUseOaMetadataBridge"
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Managing Operational Analytics Metadata Bridge
|
|
10
|
-
|
|
11
|
-
## When to Use This Skill
|
|
12
|
-
|
|
13
|
-
OA->Tableau Next metadata bridge wizard. Migrates legacy Operational
|
|
14
|
-
Analytics report-based dashboards into Tableau Next semantic data
|
|
15
|
-
models. Lists in-flight and completed AnalyticsInteropMigrDef records
|
|
16
|
-
(filter source=Oa - the Crma variant belongs to a sibling admin
|
|
17
|
-
surface), drills into one job by id, lists Tableau Next workspaces
|
|
18
|
-
and the org's Data Cloud connection, fetches DLO field metadata, and
|
|
19
|
-
atomically generates a target DMO plus DLO->DMO field mapping from a
|
|
20
|
-
dloConfig payload. Bulk status poll returns modeling state for many
|
|
21
|
-
DMOs in one call. First-class concepts: the migration-job source
|
|
22
|
-
enum {Crma, Oa} scopes lookups; the status enum {None,
|
|
23
|
-
DataObjectsAndFieldsDiscovered, OaReportTypesSelected,
|
|
24
|
-
DataLakeObjectLineageSaved, DataModelObjectLineageSaved,
|
|
25
|
-
CrmaDashboardsSelected, CrmaRecipesSelected, Completed, Failed}
|
|
26
|
-
tracks wizard progress. Update paths on the migration-job record
|
|
27
|
-
require echoing the current definitionVersion (optimistic locking).
|
|
28
|
-
|
|
29
|
-
## Workflow
|
|
30
|
-
|
|
31
|
-
Reads are independent (no ordering between get-active-interop-process,
|
|
32
|
-
get-interop-migration-history, get-interop-migration-job-by-id,
|
|
33
|
-
get-workspaces, get-connection-name, get-dlo-details,
|
|
34
|
-
get-bulk-dmo-status, get-semantic-models-for-dataspace,
|
|
35
|
-
get-all-semantic-model-api-names-for-dataspace). The atomic write
|
|
36
|
-
generate-dmo-with-mapping is initiated with a dloConfig payload;
|
|
37
|
-
verify-generate-dmo-with-mapping reads back via get-bulk-dmo-status
|
|
38
|
-
using the new DMO's developer name to confirm the deploy reached a
|
|
39
|
-
terminal modeling state.
|
|
40
|
-
|
|
41
|
-
Workflow - a typical OA->Tableau Next migration: (1) list active jobs
|
|
42
|
-
to check for an in-flight record; (2) list history for completed
|
|
43
|
-
migrations context; (3) fetch workspaces + Data Cloud connection to
|
|
44
|
-
populate wizard pickers; (4) fetch DLO field metadata for the source
|
|
45
|
-
DLO; (5) optionally pre-check semantic-model name collisions via
|
|
46
|
-
get-all-semantic-model-api-names-for-dataspace; (6) submit the
|
|
47
|
-
dloConfig to generate-dmo-with-mapping (or the bulk variant for
|
|
48
|
-
multiple DMOs in one transaction); (7) poll get-bulk-dmo-status until
|
|
49
|
-
the target DMO reaches Completed.
|
|
50
|
-
|
|
51
|
-
Out-of-band admin surface: POST /wave/interop/migration-jobs creates
|
|
52
|
-
an AnalyticsInteropMigrDef record standalone (POST response body is
|
|
53
|
-
7 fields: id, name, label, dataspaceApiName, definitionVersion:1,
|
|
54
|
-
source, status; GET on the created id returns the full 9-field record
|
|
55
|
-
including server-assigned createdDate and lastModifiedDate); PATCH
|
|
56
|
-
updates one, requiring
|
|
57
|
-
the caller to echo the current definitionVersion - server increments
|
|
58
|
-
on write (optimistic locking); DELETE removes the record. These
|
|
59
|
-
aren't part of the wizard's happy path but are the canonical Connect
|
|
60
|
-
surface for admin tools that manage AnalyticsInteropMigrDef records
|
|
61
|
-
directly.
|
|
62
|
-
|
|
63
|
-
Access guard: every cached controller signature (releases 262 and
|
|
64
|
-
264) gates all methods on Insights.userCanUseOaMetadataBridge. The
|
|
65
|
-
legacy Analytics Metadata Bridge access appears in NO
|
|
66
|
-
cached signature - the factory precondition originally named it in
|
|
67
|
-
error (now corrected). Callers should gate on
|
|
68
|
-
userCanUseOaMetadataBridge.
|
|
69
|
-
|
|
70
|
-
## Critical Constraints
|
|
71
|
-
|
|
72
|
-
**Preconditions:**
|
|
73
|
-
|
|
74
|
-
- User must have Insights UseOaMetadataBridge access (check: `Insights.userCanUseOaMetadataBridge`)
|
|
75
|
-
|
|
76
|
-
## Verification Checklist
|
|
77
|
-
|
|
78
|
-
After every write operation, confirm the effect by re-reading state:
|
|
79
|
-
|
|
80
|
-
- After `generate-dmo-with-mapping`: call `verify-generate-dmo-with-mapping` (`GET /headless/invoke/platform/operational-analytics-metadata-bridge/get-bulk-dmostatus`)
|
|
81
|
-
|
|
82
|
-
## Operations Reference
|
|
83
|
-
|
|
84
|
-
Operations grouped by purpose. Use these as the building blocks for the workflows above.
|
|
85
|
-
|
|
86
|
-
### Summary
|
|
87
|
-
|
|
88
|
-
| Operation | Purpose | Status | Call | Depends on |
|
|
89
|
-
|-----------|---------|--------|------|------------|
|
|
90
|
-
| `get-active-interop-process` | read | proposed | `GET /services/data/v66.0/wave/interop/migration-jobs` | — |
|
|
91
|
-
| `get-interop-migration-history` | read | proposed | `GET /services/data/v66.0/wave/interop/migration-jobs` | — |
|
|
92
|
-
| `get-interop-migration-job-by-id` | read | proposed | `GET /services/data/v66.0/wave/interop/migration-jobs/{interopMigrationJobId}` | — |
|
|
93
|
-
| `get-workspaces` | read | implemented | `GET /services/data/v66.0/tableau/workspaces` | — |
|
|
94
|
-
| `get-connection-name` | read | proposed | `GET /services/data/v66.0/ssot/connections` | — |
|
|
95
|
-
| `generate-dmo-with-mapping` | write | proposed | `PATCH /headless/invoke/platform/operational-analytics-metadata-bridge/generate-dmo-with-mapping` | — |
|
|
96
|
-
| `get-dlo-details` | read | proposed | `GET /services/data/v66.0/ssot/data-lake-objects/{recordIdOrDeveloperName}` | — |
|
|
97
|
-
| `get-bulk-dmo-status` | read | implemented | `GET /headless/invoke/platform/operational-analytics-metadata-bridge/get-bulk-dmostatus` | — |
|
|
98
|
-
| `verify-generate-dmo-with-mapping` | verify | proposed | `GET /headless/invoke/platform/operational-analytics-metadata-bridge/get-bulk-dmostatus` | `generate-dmo-with-mapping` |
|
|
99
|
-
| `get-semantic-models-for-dataspace` | read | proposed | `GET /headless/invoke/platform/operational-analytics-metadata-bridge/get-semantic-models-for-dataspace` | — |
|
|
100
|
-
| `get-all-semantic-model-api-names-for-dataspace` | read | proposed | `GET /headless/invoke/platform/operational-analytics-metadata-bridge/get-all-semantic-model-api-names-for-dataspace` | — |
|
|
101
|
-
| `generate-dmos-with-mapping-bulk` | write | proposed | `PATCH /headless/invoke/platform/operational-analytics-metadata-bridge/generate-dmos-with-mapping-bulk` | — |
|
|
102
|
-
|
|
103
|
-
### Read operations
|
|
104
|
-
|
|
105
|
-
#### `get-active-interop-process`
|
|
106
|
-
|
|
107
|
-
List interop migration jobs filtered by source=Oa; caller selects the latest entry with status=Started to recover the active OA migration. Connect representation per the InteropMigrationJob schema.
|
|
108
|
-
|
|
109
|
-
**Call:** `GET /services/data/v66.0/wave/interop/migration-jobs` — status: `proposed`
|
|
110
|
-
|
|
111
|
-
#### `get-interop-migration-history`
|
|
112
|
-
|
|
113
|
-
List interop migration jobs filtered by source=Oa; caller filters to status=Completed and sorts by createdDate desc to recover the OA migration history.
|
|
114
|
-
|
|
115
|
-
**Call:** `GET /services/data/v66.0/wave/interop/migration-jobs` — status: `proposed`
|
|
116
|
-
|
|
117
|
-
#### `get-interop-migration-job-by-id`
|
|
118
|
-
|
|
119
|
-
Read one interop migration job by its record id; returns the InteropMigrationJob representation with id, dataspaceApiName, definitionVersion, status, source, errorInfo, and the per-source selection lineage fields.
|
|
120
|
-
|
|
121
|
-
**Call:** `GET /services/data/v66.0/wave/interop/migration-jobs/{interopMigrationJobId}` — status: `proposed`
|
|
122
|
-
|
|
123
|
-
**Inputs:**
|
|
124
|
-
|
|
125
|
-
- `jobId` *(`String`)*
|
|
126
|
-
|
|
127
|
-
#### `get-workspaces`
|
|
128
|
-
|
|
129
|
-
List Tableau Next workspaces visible to the running user, populating the OA bridge wizard's workspace picker. Optional limit/offset for pagination; returns workspaces array of {id, name, label}.
|
|
130
|
-
|
|
131
|
-
**Call:** `GET /services/data/v66.0/tableau/workspaces` — status: `implemented`
|
|
132
|
-
|
|
133
|
-
#### `get-connection-name`
|
|
134
|
-
|
|
135
|
-
List Data Cloud connection records. connectorType is a REQUIRED query parameter - a request without it returns 400 ILLEGAL_QUERY_PARAMETER_VALUE ("ConnectorType must be provided"). The OA bridge passes connectorType=SalesforceDotCom; the server returns only that connector's connection metadata (server-side filtered, not caller-side), recovering the running org's Data Cloud connection used by the wizard.
|
|
136
|
-
|
|
137
|
-
**Call:** `GET /services/data/v66.0/ssot/connections` — status: `proposed`
|
|
138
|
-
|
|
139
|
-
#### `get-dlo-details`
|
|
140
|
-
|
|
141
|
-
Read one Data Lake Object by record id or developer name; returns the DLO record with label, category, and field metadata used by the OA bridge wizard's mapping panel.
|
|
142
|
-
|
|
143
|
-
**Call:** `GET /services/data/v66.0/ssot/data-lake-objects/{recordIdOrDeveloperName}` — status: `proposed`
|
|
144
|
-
|
|
145
|
-
**Inputs:**
|
|
146
|
-
|
|
147
|
-
- `dloApiName` *(`String`)*
|
|
148
|
-
|
|
149
|
-
#### `get-bulk-dmo-status`
|
|
150
|
-
|
|
151
|
-
Bulk-poll modeling status; List<String> of DMO developer names -> name->status map. AURA-IS-CANONICAL - no Connect/Tooling endpoint accepts a name list; substitution forces N round-trips and loses batch semantics. FACTORY GAP (live-confirmed on epic-orgfarm): this route is currently UN-INVOKABLE via the dispatcher - a headless Aura GET whose only param is a List<String> query param returns 400 REQUEST_ERROR "Invalid request", because the invoke envelope's query_params is a string-valued map and cannot carry a list. No-param and single-String-param headless GETs on the same org return 200, isolating the failure to the List<String> query encoding. This also breaks the verify-generate-dmo-with-mapping read-back step.
|
|
152
|
-
|
|
153
|
-
**Call:** `GET /headless/invoke/platform/operational-analytics-metadata-bridge/get-bulk-dmostatus` — status: `implemented`
|
|
154
|
-
|
|
155
|
-
**Inputs:**
|
|
156
|
-
|
|
157
|
-
- `dmoDeveloperNames` *(`List<String>`)*
|
|
158
|
-
|
|
159
|
-
#### `get-semantic-models-for-dataspace`
|
|
160
|
-
|
|
161
|
-
List semantic data models scoped to one dataspace. The OA bridge wizard
|
|
162
|
-
calls this to populate the DMO picker per dataspace before generating
|
|
163
|
-
a new mapping. No public Connect / Tooling / Metadata alternative
|
|
164
|
-
surfaces the dataspace-scoped list shape.
|
|
165
|
-
|
|
166
|
-
**Call:** `GET /headless/invoke/platform/operational-analytics-metadata-bridge/get-semantic-models-for-dataspace` — status: `proposed`
|
|
167
|
-
|
|
168
|
-
**Inputs:**
|
|
169
|
-
|
|
170
|
-
- `dataspaceApiName` *(`String`)* — API name of the target dataspace (default is `default`). Scopes the
|
|
171
|
-
returned semantic-model list to only models defined in this dataspace.
|
|
172
|
-
|
|
173
|
-
#### `get-all-semantic-model-api-names-for-dataspace`
|
|
174
|
-
|
|
175
|
-
List semantic model api names in one dataspace. The OA bridge wizard
|
|
176
|
-
uses this to check for duplicate name collisions before creating a
|
|
177
|
-
new DMO in that dataspace. Lighter-weight than the full semantic-model
|
|
178
|
-
list read; returns names only.
|
|
179
|
-
|
|
180
|
-
**Call:** `GET /headless/invoke/platform/operational-analytics-metadata-bridge/get-all-semantic-model-api-names-for-dataspace` — status: `proposed`
|
|
181
|
-
|
|
182
|
-
**Inputs:**
|
|
183
|
-
|
|
184
|
-
- `dataspaceApiName` *(`String`)* — API name of the target dataspace. Scopes the returned name list to
|
|
185
|
-
models defined in this dataspace.
|
|
186
|
-
|
|
187
|
-
### Write operations
|
|
188
|
-
|
|
189
|
-
#### `generate-dmo-with-mapping`
|
|
190
|
-
|
|
191
|
-
Atomic DLO->DMO materialization: resolve the source DLO, create the target custom DMO when missing, and apply the field mapping in one autoCommit multi-wrapper. AURA-IS-CANONICAL - chained cdp-connect-api calls would lose autoCommit atomicity across the CdpDataLakeObject/DataModelObject/Mapping/DataSpace wrappers. The dloConfig body map (live-verified against the controller's own validation errors on epic-orgfarm) requires: dloApiName (source DLO API name, e.g. "ProvisionedFeature__dll"); dloFieldNames (List<String> of source DLO field API names to carry - REQUIRED, "Data Lake Object information must include field names"); dmoDeveloperName (target DMO developer name; the controller appends "__dlm", so "ProvisionedFeature_OA" -> "ProvisionedFeature_OA__dlm"); dataspaceApiName (default "default"); and mappingFields (list of source->target field entries, per-entry shape {sourceFieldName, targetFieldName} - structurally accepted and reached the createDMO step on epic-orgfarm). NOTE: the harness-inferred key "dlmDeveloperName" is WRONG - the controller reads "dloApiName" and 500s ("Data Lake Object information must include API name") on the wrong key.
|
|
192
|
-
|
|
193
|
-
**Call:** `PATCH /headless/invoke/platform/operational-analytics-metadata-bridge/generate-dmo-with-mapping` — status: `proposed`
|
|
194
|
-
|
|
195
|
-
**Inputs:**
|
|
196
|
-
|
|
197
|
-
- `dloConfig` *(`Map<String, Object>`)* — Value for dlo config.
|
|
198
|
-
|
|
199
|
-
#### `generate-dmos-with-mapping-bulk`
|
|
200
|
-
|
|
201
|
-
Bulk variant of generate-dmo-with-mapping: accepts a list of dloConfig
|
|
202
|
-
entries plus a correlationId and atomically creates all DMOs and their
|
|
203
|
-
DLO field mappings in one call. AURA-IS-CANONICAL - the batch shape
|
|
204
|
-
+ atomic autoCommit across multiple DLO/DMO/Mapping/DataSpace wrappers
|
|
205
|
-
has no Connect/Tooling equivalent.
|
|
206
|
-
|
|
207
|
-
**Call:** `PATCH /headless/invoke/platform/operational-analytics-metadata-bridge/generate-dmos-with-mapping-bulk` — status: `proposed`
|
|
208
|
-
|
|
209
|
-
**Inputs:**
|
|
210
|
-
|
|
211
|
-
- `dloConfigs` *(`List<Map<String, Object>>`)* — List of per-DMO dloConfig entries; each entry follows the SAME generate-dmo-with-mapping dloConfig contract: dloApiName (source DLO API name, e.g. "ProvisionedFeature__dll"); dloFieldNames (List<String> of source DLO field API names to carry - REQUIRED); dmoDeveloperName (target DMO developer name; the controller appends "__dlm"); dataspaceApiName (default "default"); and mappingFields (per-entry {sourceFieldName, targetFieldName}). NOTE: the harness-inferred key "dlmDeveloperName" is WRONG - the controller reads "dloApiName" and 500s ("Data Lake Object information must include API name") on the wrong key, exactly as documented on the singular generate-dmo-with-mapping step. All entries are processed inside one autoCommit transaction; partial success is not surfaced.
|
|
212
|
-
- `correlationId` *(`String`)* — Client-supplied correlation identifier for the bulk operation.
|
|
213
|
-
Downstream progress tracking (via get-bulk-dmo-status) uses the
|
|
214
|
-
resulting DMO developer names, not this id; supply a stable value
|
|
215
|
-
per bulk submission for observability.
|
|
216
|
-
|
|
217
|
-
### Verify operations
|
|
218
|
-
|
|
219
|
-
#### `verify-generate-dmo-with-mapping`
|
|
220
|
-
|
|
221
|
-
Read back via get-bulk-dmo-status with the new DMO developer name; the returned map's modeling-status entry confirms the deploy reached the platform.
|
|
222
|
-
|
|
223
|
-
**Call:** `GET /headless/invoke/platform/operational-analytics-metadata-bridge/get-bulk-dmostatus` — status: `proposed`
|
|
224
|
-
|
|
225
|
-
**Inputs:**
|
|
226
|
-
|
|
227
|
-
- `dmoDeveloperNames` *(`List<String>`)*
|
|
228
|
-
|
|
229
|
-
**Depends on:** `generate-dmo-with-mapping`
|
|
230
|
-
|
|
231
|
-
## Notes
|
|
232
|
-
|
|
233
|
-
- **wire_contract_findings:** {'description': 'GET /wave/interop/migration-jobs?source=<invalid> returns 503 with\nerrorCode 239 ("The specified enum type has no constant with the\nspecified name: <value>"). Query-filter enum validation is\ncase-sensitive and rejects unknown values with a server-error shape\n(not a 400).', 'affected_step': 'get-active-interop-process'}, {'description': 'POST /wave/interop/migration-jobs body {source: <invalid>, ...}\nreturns 400 POST_BODY_PARSE_ERROR ("Invalid value for Invalid\ninteroperability migration source: <value>"). Body enum validation\nproduces a different error shape than the query-filter case above.', 'affected_step': 'get-active-interop-process'}, {'description': 'GET /wave/interop/migration-jobs/{invalid-id} returns 404 errorCode\n135 ("Failed to load AnalyticsInteropMigrDef for Id=<id>"). Distinct\nfrom the 118 mandatory-field code.', 'affected_step': 'get-interop-migration-job-by-id'}, {'description': 'PATCH /wave/interop/migration-jobs/{id} without definitionVersion in\nthe body returns 400 errorCode 118 ("definitionVersion is a\nmandatory field"). PATCH is not true partial merge - the caller\nmust fetch the current record and echo definitionVersion on every\nupdate. On success, the server increments definitionVersion by 1\n(optimistic-locking semantics; a stale echo will conflict).', 'affected_step': 'get-interop-migration-job-by-id'}, {'description': 'POST /wave/interop/migration-jobs body accepts a strict subset of\nthe response fields: only {source, dataspaceApiName, status} are\nwritable inputs. Including id, name, label, definitionVersion,\ncreatedDate, or lastModifiedDate in the request body returns 400\nJSON_PARSER_ERROR "Unrecognized field <field>" (short-circuits\nbefore enum validation). Server auto-assigns id, name, label\n(name defaults to AnalyticsInteropMigrDef_<random>; label mirrors\nname), definitionVersion (starts at 1), createdDate,\nlastModifiedDate.', 'affected_step': 'get-active-interop-process'}, {'description': 'PATCH /wave/interop/migration-jobs/{id} rejects `name` and `label`\nas unrecognized input fields (400 JSON_PARSER_ERROR). These are\nimmutable post-create - only `status`, `definitionVersion` (echo),\nand per-source selection lineage fields are mutable. Agents\ndriving update workflows should not attempt to rename records.', 'affected_step': 'get-interop-migration-job-by-id'}, {'description': 'PATCH body `status` field has a stricter accepted-value set than\nthe response schema exposes. Long-form values like\nDataObjectsAndFieldsDiscovered return 503 errorCode 239 ("No enum\nconstant AnalyticsInteropMigrDefStatusEnum.<abbrev>") where the\nserver has translated the input to an internal abbreviation\nbefore enum lookup. The short abbreviation itself (e.g., DOAFD)\nreturns 400 POST_BODY_PARSE_ERROR "Invalid value for status".\nConfirmed accepted: None. Agents should treat the write-side\nstatus enum as a distinct, less permissive set than the response\nschema - probe or use `get-interop-migration-job-by-id` to\ndiscover an accepted value before PATCH-transitioning state.', 'affected_step': 'get-interop-migration-job-by-id'}, {'description': 'definitionVersion does not increment strictly by +1 per successful\nPATCH. After POST (v1), a successful PATCH may return v3 or higher\neven when no prior successful PATCH occurred - validation-error\npaths (400/503) can still bump the internal version counter, or\nthe successful PATCH itself may bump by more than one. Agents MUST\nround-trip a GET after any successful write to recover the current\nversion before the next PATCH; do not assume +1 arithmetic.', 'affected_step': 'get-interop-migration-job-by-id'}
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: crm-analytics-report-notifications-ui-configure
|
|
3
|
-
description: "Use this skill when users want to setup page for managing AnalyticNotification records—Lightning Report and Dashboard subscriptions scoped to the calling user. Trigger when users mention report, notifications, ui, report notifications ui."
|
|
4
|
-
metadata:
|
|
5
|
-
version: "1.0"
|
|
6
|
-
accessCheck: "AnalyticsAccessCheck.CAN_SUBSCRIBE_REPORTS_RUN_AS_USER"
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Managing Report Notifications Ui
|
|
10
|
-
|
|
11
|
-
## When to Use This Skill
|
|
12
|
-
|
|
13
|
-
Setup page for managing AnalyticNotification records—Lightning Report and Dashboard subscriptions scoped to the calling user. The page lists existing subscriptions and supports creating, updating, and deleting subscriptions.
|
|
14
|
-
|
|
15
|
-
Programmatic CRUD operations are exposed through the SubscribeDialog Aura controller, mounted at /headless/invoke/analytics/analytics-home/subscribe-dialog/.
|
|
16
|
-
|
|
17
|
-
Each record-scoped operation requires a `source` parameter ("Report" or "Dashboard") and either:
|
|
18
|
-
- `recordId` — the target Report or Dashboard, or
|
|
19
|
-
- `notificationId` — an existing subscription.
|
|
20
|
-
|
|
21
|
-
Before performing subscription operations, call getReportSubscriptionUserPerms to determine permissions and gate flows involving Run As User and other-user recipients.
|
|
22
|
-
|
|
23
|
-
The two setup_page steps—view and refresh—are navigation-canonical. No programmatic API replaces the Setup page UI itself.
|
|
24
|
-
|
|
25
|
-
## Workflow
|
|
26
|
-
|
|
27
|
-
{'canonical_sequence': ['read-report-subscription-user-perms', 'read-limits', 'read-notification-info', 'read-recipient-types', 'write-notification', 'update-notification', 'delete-unsubscribe-notification'], 'notes': "Always read perms + limits before write operations. Use read-notification-info to check existing state before create/update/delete. For updates, prefer update-notification over delete+create. The `source` parameter is always 'Report' or 'Dashboard' — no other values are accepted."}
|
|
28
|
-
|
|
29
|
-
## Critical Constraints
|
|
30
|
-
|
|
31
|
-
**Preconditions:**
|
|
32
|
-
|
|
33
|
-
- Reports & Dashboards is enabled in the org. Default in every Salesforce edition; included for completeness.
|
|
34
|
-
- Caller has access to the Report or Dashboard identified by `recordId`. Subscription operations resolve recordId in the caller's sharing context; a record the caller cannot view will not be subscribable.
|
|
35
|
-
- For run-as-user or other-user-recipient subscriptions, caller must hold the corresponding perm — read via read-report-subscription-user-perms (CAN_SUBSCRIBE_REPORTS_RUN_AS_USER / CAN_SUBSCRIBE_REPORT_TO_OTHER_USERS). (check: `AnalyticsAccessCheck.CAN_SUBSCRIBE_REPORTS_RUN_AS_USER`)
|
|
36
|
-
|
|
37
|
-
**Destructive operations — require explicit user confirmation:**
|
|
38
|
-
|
|
39
|
-
- **`delete-unsubscribe-notification`** — Delete the AnalyticNotification identified by `notificationId`. Throws IllegalArgumentException if the id does not resolve to AnalyticNotification entity type. Obtain `notificationId` from a prior read-notification-info call.
|
|
40
|
-
- Rollback: No automatic rollback.
|
|
41
|
-
|
|
42
|
-
## Operations Reference
|
|
43
|
-
|
|
44
|
-
Operations grouped by purpose. Use these as the building blocks for the workflows above.
|
|
45
|
-
|
|
46
|
-
### Summary
|
|
47
|
-
|
|
48
|
-
| Operation | Purpose | Status | Call | Depends on |
|
|
49
|
-
|-----------|---------|--------|------|------------|
|
|
50
|
-
| `view_ReportNotificationsUI_1` | read | — | `ReportNotificationsUI.view` | — |
|
|
51
|
-
| `refresh_ReportNotificationsUI_1` | read | — | `ReportNotificationsUI.refresh` | — |
|
|
52
|
-
| `read-notification-info` | read | — | `GET /headless/invoke/analytics/analytics-home/subscribe-dialog/get-notification-info` | — |
|
|
53
|
-
| `read-report-subscription-user-perms` | read | — | `GET /headless/invoke/analytics/analytics-home/subscribe-dialog/get-report-subscription-user-perms` | — |
|
|
54
|
-
| `write-notification` | write | — | `PATCH /headless/invoke/analytics/analytics-home/subscribe-dialog/create-notification` | `read-report-subscription-user-perms`, `read-limits` |
|
|
55
|
-
| `delete-unsubscribe-notification` | delete | — | `PATCH /headless/invoke/analytics/analytics-home/subscribe-dialog/unsubscribe-notification` | `read-notification-info` |
|
|
56
|
-
| `update-notification` | write | — | `PATCH /headless/invoke/analytics/analytics-home/subscribe-dialog/save-notification` | `read-notification-info`, `read-report-subscription-user-perms` |
|
|
57
|
-
| `read-limits` | read | — | `GET /headless/invoke/analytics/analytics-home/subscribe-dialog/get-limits` | — |
|
|
58
|
-
| `read-recipient-types` | read | — | `GET /headless/invoke/analytics/analytics-home/subscribe-dialog/get-recipient-types` | — |
|
|
59
|
-
|
|
60
|
-
### Dependency graph
|
|
61
|
-
|
|
62
|
-
```mermaid
|
|
63
|
-
graph TD
|
|
64
|
-
view_ReportNotificationsUI_1["view_ReportNotificationsUI_1 (read)"]
|
|
65
|
-
refresh_ReportNotificationsUI_1["refresh_ReportNotificationsUI_1 (read)"]
|
|
66
|
-
read_notification_info["read-notification-info (read)"]
|
|
67
|
-
read_report_subscription_user_perms["read-report-subscription-user-perms (read)"]
|
|
68
|
-
write_notification["write-notification (write)"]
|
|
69
|
-
delete_unsubscribe_notification["delete-unsubscribe-notification (delete)"]
|
|
70
|
-
update_notification["update-notification (write)"]
|
|
71
|
-
read_limits["read-limits (read)"]
|
|
72
|
-
read_recipient_types["read-recipient-types (read)"]
|
|
73
|
-
read_report_subscription_user_perms --> write_notification
|
|
74
|
-
read_limits --> write_notification
|
|
75
|
-
read_notification_info --> delete_unsubscribe_notification
|
|
76
|
-
read_notification_info --> update_notification
|
|
77
|
-
read_report_subscription_user_perms --> update_notification
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
### Read operations
|
|
81
|
-
|
|
82
|
-
#### `view_ReportNotificationsUI_1`
|
|
83
|
-
|
|
84
|
-
Open the Subscriptions Setup page for manual review of the caller's Lightning report/dashboard subscriptions. NAVIGATION — no programmatic API navigates the page UI; manage subscription records via subscribe-dialog steps.
|
|
85
|
-
|
|
86
|
-
**Call:** `ReportNotificationsUI.view`
|
|
87
|
-
|
|
88
|
-
#### `refresh_ReportNotificationsUI_1`
|
|
89
|
-
|
|
90
|
-
Reload the Subscriptions Setup page. NAVIGATION — no API analog; reissue the underlying subscribe-dialog reads (e.g. read-notification-info) to pick up record changes programmatically.
|
|
91
|
-
|
|
92
|
-
**Call:** `ReportNotificationsUI.refresh`
|
|
93
|
-
|
|
94
|
-
#### `read-notification-info`
|
|
95
|
-
|
|
96
|
-
Read caller's AnalyticNotification (subscription) for `recordId` scoped to `source`. `recordId` must be a Report or Dashboard; `source` must be 'Report' or 'Dashboard' — passing neither raises IllegalArgumentException.
|
|
97
|
-
|
|
98
|
-
**Call:** `GET /headless/invoke/analytics/analytics-home/subscribe-dialog/get-notification-info`
|
|
99
|
-
|
|
100
|
-
**Inputs:**
|
|
101
|
-
|
|
102
|
-
- `recordId` *(`String`)*
|
|
103
|
-
- `source` *(`String`)*
|
|
104
|
-
|
|
105
|
-
**Output:** AnalyticNotification record envelope. Returns the caller's subscription state for the recordId; absent/null when the user is not subscribed.
|
|
106
|
-
|
|
107
|
-
#### `read-report-subscription-user-perms`
|
|
108
|
-
|
|
109
|
-
Read caller's report-subscription perm flags. Returns `{runAsAccess, subscribeToOtherUsersAccess}` derived from AnalyticsAccessCheck.CAN_SUBSCRIBE_REPORTS_RUN_AS_USER and CAN_SUBSCRIBE_REPORT_TO_OTHER_USERS — gate before scripting create-notification with run-as-user or other-user recipients.
|
|
110
|
-
|
|
111
|
-
**Call:** `GET /headless/invoke/analytics/analytics-home/subscribe-dialog/get-report-subscription-user-perms`
|
|
112
|
-
|
|
113
|
-
**Output:** Returns `{runAsAccess: boolean, subscribeToOtherUsersAccess: boolean}` — the two perm bits that gate the dialog's run-as picker and other-user-recipient input.
|
|
114
|
-
|
|
115
|
-
#### `read-limits`
|
|
116
|
-
|
|
117
|
-
Read the org's subscription capacity limits for the given `source` ("Report" or "Dashboard"). Returns max subscriptions allowed and current count. Call before create-notification to pre-check capacity.
|
|
118
|
-
|
|
119
|
-
**Call:** `GET /headless/invoke/analytics/analytics-home/subscribe-dialog/get-limits`
|
|
120
|
-
|
|
121
|
-
**Inputs:**
|
|
122
|
-
|
|
123
|
-
- `source` *(`String`)*
|
|
124
|
-
|
|
125
|
-
**Output:** Returns subscription limit info for the source type — max allowed and current usage count.
|
|
126
|
-
|
|
127
|
-
#### `read-recipient-types`
|
|
128
|
-
|
|
129
|
-
Read available recipient types for the report/dashboard identified by `recordId`. Returns the list of valid recipient type options (e.g. User, Group) that can be used in the create-notification `data` payload.
|
|
130
|
-
|
|
131
|
-
**Call:** `GET /headless/invoke/analytics/analytics-home/subscribe-dialog/get-recipient-types`
|
|
132
|
-
|
|
133
|
-
**Inputs:**
|
|
134
|
-
|
|
135
|
-
- `recordId` *(`String`)*
|
|
136
|
-
|
|
137
|
-
**Output:** List of objects — each with type name and availability for the given record.
|
|
138
|
-
|
|
139
|
-
### Write operations
|
|
140
|
-
|
|
141
|
-
#### `write-notification`
|
|
142
|
-
|
|
143
|
-
Create an AnalyticNotification (subscription) from serialized `data` payload encoding recipients, schedule, run-as user, and other subscription parameters. Call read-limits first to verify capacity, and read-recipient-types to discover valid recipient options for the data payload.
|
|
144
|
-
|
|
145
|
-
**Call:** `PATCH /headless/invoke/analytics/analytics-home/subscribe-dialog/create-notification`
|
|
146
|
-
|
|
147
|
-
**Inputs:**
|
|
148
|
-
|
|
149
|
-
- `data` *(`String`)*
|
|
150
|
-
|
|
151
|
-
**Depends on:** `read-report-subscription-user-perms`, `read-limits`
|
|
152
|
-
|
|
153
|
-
**Output:** A JSON response from analytics direct-REST create — created AnalyticNotification record id and resolved schedule/recipients on success.
|
|
154
|
-
|
|
155
|
-
#### `update-notification`
|
|
156
|
-
|
|
157
|
-
Update an existing AnalyticNotification (subscription) identified by `notificationId`. The `data` payload encodes the same fields as create-notification (recipients, schedule, run-as user). Obtain `notificationId` from a prior read-notification-info call.
|
|
158
|
-
|
|
159
|
-
**Call:** `PATCH /headless/invoke/analytics/analytics-home/subscribe-dialog/save-notification`
|
|
160
|
-
|
|
161
|
-
**Inputs:**
|
|
162
|
-
|
|
163
|
-
- `notificationId` *(`String`)*
|
|
164
|
-
- `data` *(`String`)*
|
|
165
|
-
|
|
166
|
-
**Depends on:** `read-notification-info`, `read-report-subscription-user-perms`
|
|
167
|
-
|
|
168
|
-
**Output:** Returns the updated AnalyticNotification REST response body on success.
|
|
169
|
-
|
|
170
|
-
### Destructive operations
|
|
171
|
-
|
|
172
|
-
#### `delete-unsubscribe-notification`
|
|
173
|
-
|
|
174
|
-
Delete the AnalyticNotification identified by `notificationId`. Throws IllegalArgumentException if the id does not resolve to AnalyticNotification entity type. Obtain `notificationId` from a prior read-notification-info call.
|
|
175
|
-
|
|
176
|
-
**Call:** `PATCH /headless/invoke/analytics/analytics-home/subscribe-dialog/unsubscribe-notification`
|
|
177
|
-
|
|
178
|
-
**Inputs:**
|
|
179
|
-
|
|
180
|
-
- `notificationId` *(`String`)*
|
|
181
|
-
|
|
182
|
-
**Depends on:** `read-notification-info`
|
|
183
|
-
|
|
184
|
-
**Output:** Returns the analytics direct-REST delete response (typically empty/success on a successful unsubscribe).
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: crm-analytics-sharing-inheritance-coverage-analyze
|
|
3
|
-
description: "Use this skill when users want to setup page for CRM Analytics (Wave) Sharing Inheritance Coverage. Trigger when users mention insights, setup, sharing, inheritance, coverage, insights setup sharing inheritance coverage."
|
|
4
|
-
metadata:
|
|
5
|
-
version: "1.0"
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Managing Insights Setup Sharing Inheritance Coverage
|
|
9
|
-
|
|
10
|
-
## When to Use This Skill
|
|
11
|
-
|
|
12
|
-
Setup page for CRM Analytics (Wave) Sharing Inheritance Coverage. Reads org-level descriptor limits, lists sObjects/datasets eligible for sharing inheritance, submits user-coverage calculation jobs (CoverageJobStatusEnum: NotStarted/InProgress/Success/Failure), polls job status, and reads back per-object/per-user coverage. 6 of 9 steps substitute to public Connect API `/wave/security/coverage/*` (insights-connect-api); the 2 org-value getters (MED_VIS_DESCRIPTOR_LIMIT, WAVE_V_S_MAX_DESCRIPTORS) and the dataset→sharingSource resolver remain Aura-canonical.
|
|
13
|
-
|
|
14
|
-
## Workflow
|
|
15
|
-
|
|
16
|
-
Workflow: read get-elt-limit + get-query-limit (descriptor caps driving unsupportedRecords / userCountCoverageUnknown). Discover via get-eligible-objects + get-eligible-datasets; get-object-details for per-object detail. User coverage: post-user-coverage → poll get-coverage-job until Success/Failure → read get-user-coverage. get-dataset-sharing-source resolves dataset→sObject.
|
|
17
|
-
|
|
18
|
-
## Critical Constraints
|
|
19
|
-
|
|
20
|
-
**Preconditions:**
|
|
21
|
-
|
|
22
|
-
- Setup page requires `Insights or analytics enabled && Insights enabled && OrgPreferences.WaveSharingInheritance && Insights Data Prep Editor` (per the setup-manifest access gate). None of the individual steps enforce this directly in the Aura controller — it's the page-level gate an admin/agent must satisfy before any of these operations are reachable at all, most notably the `WaveSharingInheritance` org preference and the `InsightsEltEditor` permission, neither of which is implied by a generic Insights/Wave license. (check: `InsightsSetupSharingInheritanceCoverage page access`)
|
|
23
|
-
|
|
24
|
-
## Operations Reference
|
|
25
|
-
|
|
26
|
-
Operations grouped by purpose. Use these as the building blocks for the workflows above.
|
|
27
|
-
|
|
28
|
-
### Summary
|
|
29
|
-
|
|
30
|
-
| Operation | Purpose | Status | Call | Depends on |
|
|
31
|
-
|-----------|---------|--------|------|------------|
|
|
32
|
-
| `get-elt-limit` | read | implemented | `GET /headless/invoke/platform/insights-setup-sharing-inheritance-coverage` | — |
|
|
33
|
-
| `get-query-limit` | read | implemented | `GET /headless/invoke/platform/insights-setup-sharing-inheritance-coverage/get-query-limit` | — |
|
|
34
|
-
| `get-coverage-job` | read | proposed | `GET /services/data/v66.0/wave/security/coverage/jobs/{jobId}` | `post-user-coverage` |
|
|
35
|
-
| `get-eligible-objects` | read | proposed | `GET /services/data/v66.0/wave/security/coverage/objects` | — |
|
|
36
|
-
| `get-eligible-datasets` | read | proposed | `GET /services/data/v66.0/wave/security/coverage/datasets` | — |
|
|
37
|
-
| `post-user-coverage` | write | proposed | `POST /services/data/v66.0/wave/security/coverage/objects/{objectApiName}/users` | `get-eligible-objects` |
|
|
38
|
-
| `get-user-coverage` | read | proposed | `GET /services/data/v66.0/wave/security/coverage/objects/{objectApiName}/users` | `post-user-coverage`, `get-coverage-job` |
|
|
39
|
-
| `get-object-details` | read | implemented | `GET /services/data/v66.0/wave/security/coverage/objects/{objectApiName}` | `get-eligible-objects` |
|
|
40
|
-
| `get-dataset-sharing-source` | read | proposed | `GET /headless/invoke/platform/insights-setup-sharing-inheritance-coverage/get-dataset-sharing-source` | `get-eligible-datasets` |
|
|
41
|
-
|
|
42
|
-
### Dependency graph
|
|
43
|
-
|
|
44
|
-
```mermaid
|
|
45
|
-
graph TD
|
|
46
|
-
get_elt_limit["get-elt-limit (read)"]
|
|
47
|
-
get_query_limit["get-query-limit (read)"]
|
|
48
|
-
get_coverage_job["get-coverage-job (read)"]
|
|
49
|
-
get_eligible_objects["get-eligible-objects (read)"]
|
|
50
|
-
get_eligible_datasets["get-eligible-datasets (read)"]
|
|
51
|
-
post_user_coverage["post-user-coverage (write)"]
|
|
52
|
-
get_user_coverage["get-user-coverage (read)"]
|
|
53
|
-
get_object_details["get-object-details (read)"]
|
|
54
|
-
get_dataset_sharing_source["get-dataset-sharing-source (read)"]
|
|
55
|
-
post_user_coverage --> get_coverage_job
|
|
56
|
-
get_eligible_objects --> post_user_coverage
|
|
57
|
-
post_user_coverage --> get_user_coverage
|
|
58
|
-
get_coverage_job --> get_user_coverage
|
|
59
|
-
get_eligible_objects --> get_object_details
|
|
60
|
-
get_eligible_datasets --> get_dataset_sharing_source
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### Read operations
|
|
64
|
-
|
|
65
|
-
#### `get-elt-limit`
|
|
66
|
-
|
|
67
|
-
Read `MED_VIS_DESCRIPTOR_LIMIT` org-value (integer): per-record descriptor cap gating medium-visibility sharing predicates. AURA-IS-CANONICAL — no public Connect/Tooling/Metadata/sObject surface exposes this org-value.
|
|
68
|
-
|
|
69
|
-
**Call:** `GET /headless/invoke/platform/insights-setup-sharing-inheritance-coverage` — status: `implemented`
|
|
70
|
-
|
|
71
|
-
**Output:** Returns an integer — the medium-visibility descriptor limit per the spec's `SharingInheritanceCoveragePageAuraGeteltlimitRepresentation` (type: integer, format: int32).
|
|
72
|
-
|
|
73
|
-
#### `get-query-limit`
|
|
74
|
-
|
|
75
|
-
Read `WAVE_V_S_MAX_DESCRIPTORS` org-value (integer): per-user descriptor ceiling driving `userCountCoverageUnknown` in user-coverage results. AURA-IS-CANONICAL — no public surface exposes this org-value.
|
|
76
|
-
|
|
77
|
-
**Call:** `GET /headless/invoke/platform/insights-setup-sharing-inheritance-coverage/get-query-limit` — status: `implemented`
|
|
78
|
-
|
|
79
|
-
**Output:** Returns an integer — the per-user max-descriptors ceiling per the spec's `SharingInheritanceCoveragePageAuraGetquerylimitRepresentation` (type: integer, format: int32).
|
|
80
|
-
|
|
81
|
-
#### `get-coverage-job`
|
|
82
|
-
|
|
83
|
-
Read sharing-inheritance coverage job status by jobId. Returns CoverageJobRepresentation: status (CoverageJobStatusEnum: NotStarted/InProgress/Success/Failure), target object AssetReference, message, userCoverage URL for the read-back.
|
|
84
|
-
|
|
85
|
-
**Call:** `GET /services/data/v66.0/wave/security/coverage/jobs/{jobId}` — status: `proposed`
|
|
86
|
-
|
|
87
|
-
**Inputs:**
|
|
88
|
-
|
|
89
|
-
- `JOB_ID` *(`String`)*
|
|
90
|
-
|
|
91
|
-
**Depends on:** `post-user-coverage`
|
|
92
|
-
|
|
93
|
-
**Output:** CoverageJobRepresentation: status (CoverageJobStatusEnum), object (AssetReference to the target sObject), message (string), userCoverage (ConnectUri to the get-user-coverage read-back).
|
|
94
|
-
|
|
95
|
-
#### `get-eligible-objects`
|
|
96
|
-
|
|
97
|
-
List sObjects whose access can be governed via sharing inheritance. Each ObjectCoverageRepresentation carries eligibleSharingSource, name, namespace, label, securityFields, url, and unsupportedRecords (records exceeding the medium-visibility descriptor limit).
|
|
98
|
-
|
|
99
|
-
**Call:** `GET /services/data/v66.0/wave/security/coverage/objects` — status: `proposed`
|
|
100
|
-
|
|
101
|
-
**Output:** {objectsCovered: array of ObjectCoverageRepresentation}, where each row has eligibleSharingSource (boolean), name, namespace, label, securityFields (array), url (ConnectUri), unsupportedRecords (UnsupportedRecordCollectionRepresentation with values + count).
|
|
102
|
-
|
|
103
|
-
#### `get-eligible-datasets`
|
|
104
|
-
|
|
105
|
-
Get the org-wide dataset sharing-inheritance roll-up — total datasets, count whose sharing source is eligible, the resulting coverage percentage, a per-entity occurrence count, and asset references for the eligible datasets.
|
|
106
|
-
|
|
107
|
-
**Call:** `GET /services/data/v66.0/wave/security/coverage/datasets` — status: `proposed`
|
|
108
|
-
|
|
109
|
-
**Output:** DatasetCoverageSummaryRepresentation: totalDatasets (integer), totalDatasetsCovered (integer), coveragePercentage (number), entityCount (object), datasetsCovered (array of AssetReferenceRepresentation).
|
|
110
|
-
|
|
111
|
-
#### `get-user-coverage`
|
|
112
|
-
|
|
113
|
-
Read user-coverage breakdown for the given sObject after the job completes: coveragePercentage, userCountCovered, userCountNotCovered, userCountCoverageUnknown (capped by WAVE_V_S_MAX_DESCRIPTORS), plus per-user usersNotCovered details.
|
|
114
|
-
|
|
115
|
-
**Call:** `GET /services/data/v66.0/wave/security/coverage/objects/{objectApiName}/users` — status: `proposed`
|
|
116
|
-
|
|
117
|
-
**Inputs:**
|
|
118
|
-
|
|
119
|
-
- `OBJECT_NAME_PARAM` *(`String`)*
|
|
120
|
-
|
|
121
|
-
**Depends on:** `post-user-coverage`, `get-coverage-job`
|
|
122
|
-
|
|
123
|
-
**Output:** UserCoverageRepresentation: object (AssetReference), coveragePercentage (number), userCountCovered (integer), userCountNotCovered (integer), userCountCoverageUnknown (integer), usersNotCovered (array of UserCoverageDetailRepresentation with id/name/descriptorCount/reason), coverageJob (AssetReference to the producing job).
|
|
124
|
-
|
|
125
|
-
#### `get-object-details`
|
|
126
|
-
|
|
127
|
-
Read sharing-inheritance detail for one sObject: eligibleSharingSource flag, name/namespace/label, securityFields, self-URL, and unsupportedRecords (records whose descriptor count exceeds the MED_VIS_DESCRIPTOR_LIMIT from get-elt-limit).
|
|
128
|
-
|
|
129
|
-
**Call:** `GET /services/data/v66.0/wave/security/coverage/objects/{objectApiName}` — status: `implemented`
|
|
130
|
-
|
|
131
|
-
**Inputs:**
|
|
132
|
-
|
|
133
|
-
- `OBJECT_NAME_PARAM` *(`String`)*
|
|
134
|
-
|
|
135
|
-
**Depends on:** `get-eligible-objects`
|
|
136
|
-
|
|
137
|
-
**Output:** ObjectCoverageRepresentation: eligibleSharingSource (boolean), name, namespace, label (strings), securityFields (array of string), url (ConnectUri), unsupportedRecords (UnsupportedRecordCollectionRepresentation with values + count).
|
|
138
|
-
|
|
139
|
-
#### `get-dataset-sharing-source`
|
|
140
|
-
|
|
141
|
-
Resolve a dataset (id or developer name) to its sharingSource sObject AssetReference. AURA-IS-CANONICAL: controller atomically resolves dataset → current version → sharingSource in one call; substituting splits into two round-trips losing atomicity.
|
|
142
|
-
|
|
143
|
-
**Call:** `GET /headless/invoke/platform/insights-setup-sharing-inheritance-coverage/get-dataset-sharing-source` — status: `proposed`
|
|
144
|
-
|
|
145
|
-
**Inputs:**
|
|
146
|
-
|
|
147
|
-
- `DATASET_ID_PARAM` *(`String`)*
|
|
148
|
-
|
|
149
|
-
**Depends on:** `get-eligible-datasets`
|
|
150
|
-
|
|
151
|
-
**Output:** AssetReferenceRepresentation: id (ID), name, label, description (strings), url (ConnectUri) — pointing at the source sObject the dataset inherits sharing from.
|
|
152
|
-
|
|
153
|
-
### Write operations
|
|
154
|
-
|
|
155
|
-
#### `post-user-coverage`
|
|
156
|
-
|
|
157
|
-
Submit a sharing-inheritance user-coverage calculation for the given sObject. Returns CoverageJobRepresentation; the caller then polls get-coverage-job until status is Success or Failure, then reads get-user-coverage. Per the controller's own doc comment (SharingInheritanceCoveragePageAuraController.postUserCoverage), this endpoint "may throw an error when the report is run too often" (rate-limited) "and may also just throw a random error" — the controller's own guidance is to "make sure to handle the error code" rather than treat every thrown error as terminal; a caller/agent should be prepared to retry on failure rather than surfacing every error as a hard stop.
|
|
158
|
-
|
|
159
|
-
**Call:** `POST /services/data/v66.0/wave/security/coverage/objects/{objectApiName}/users` — status: `proposed`
|
|
160
|
-
|
|
161
|
-
**Inputs:**
|
|
162
|
-
|
|
163
|
-
- `OBJECT_NAME_PARAM` *(`String`)* — Value for the objec nam param field.
|
|
164
|
-
|
|
165
|
-
**Depends on:** `get-eligible-objects`
|
|
166
|
-
|
|
167
|
-
**Output:** CoverageJobRepresentation: status (CoverageJobStatusEnum, typically NotStarted or InProgress on submit), object (AssetReference), message, userCoverage (ConnectUri to the eventual read-back).
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: crm-analytics-sonic-getting-started-configure
|
|
3
|
-
description: "Use this skill when users want to toggle Sonic (Data Pipelines / ELT) org prefs in Analytics Data Manager Setup. Trigger when users mention sonic, getting, started, sonic getting started."
|
|
4
|
-
metadata:
|
|
5
|
-
version: "1.0"
|
|
6
|
-
accessCheck: "OrgPermissions.SonicLicensedOrg"
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Querying Sonic Getting Started
|
|
10
|
-
|
|
11
|
-
## When to Use This Skill
|
|
12
|
-
|
|
13
|
-
Toggle Sonic (Data Pipelines / ELT) org prefs in Analytics Data Manager Setup. Step 1: master license, scoped by `appType` (`DataManager`→`ORG_PREFERENCE_SONIC_ENABLED`, `MulesoftDataPath`→`ORG_PREFERENCE_MDWENABLED`); atomic `BulkPrefOperation`, runs `SonicEnablementUtil.postSonicOrgPrefEnable` on enable. Step 2: one output-connector pref; controller enforces server-side allowlist (`amazonS3`, `snowflake`, `tableauHyper`, `salesforce`). Both gated on View Setup + `USER_PERMISSION_SONIC_CONSUMER`. Both AURA-IS-CANONICAL — no Connect/Tooling/Metadata/sObject equivalent; controller is value-add (atomic batch, post-enable hook, allowlist).
|
|
14
|
-
|
|
15
|
-
## Critical Constraints
|
|
16
|
-
|
|
17
|
-
**Preconditions:**
|
|
18
|
-
|
|
19
|
-
- Caller holds `View Setup` AND `SONIC_CONSUMER` user permissions (composed access guard `Pipeline Inspector setup access` = `UserPermissions.ViewSetup && UserPermissions.SonicConsumer`). Both controller methods throw `NoAccessException` when either is absent. (check: `Pipeline Inspector setup access`)
|
|
20
|
-
- Org has the Sonic license — `OrgPermissions.SonicLicensedOrg` enabled. The connector toggles in `handleOutputConnectorPref` map every connector to `PermPrefEnabler.*.isAccessAllowed` against `ORG_PERMISSION_SONIC_LICENSED_ORG`; without the license the prefs cannot be flipped. (check: `OrgPermissions.SonicLicensedOrg`)
|
|
21
|
-
|
|
22
|
-
## Operations Reference
|
|
23
|
-
|
|
24
|
-
Operations grouped by purpose. Use these as the building blocks for the workflows above.
|
|
25
|
-
|
|
26
|
-
### Summary
|
|
27
|
-
|
|
28
|
-
| Operation | Purpose | Status | Call | Depends on |
|
|
29
|
-
|-----------|---------|--------|------|------------|
|
|
30
|
-
| `handleSonicPref_1` | read | implemented | `PATCH /headless/invoke/platform/sonic-getting-started/handle-sonic-pref` | — |
|
|
31
|
-
| `handleOutputConnectorPref_2` | read | implemented | `PATCH /headless/invoke/platform/sonic-getting-started/handle-output-connector-pref` | — |
|
|
32
|
-
|
|
33
|
-
### Read operations
|
|
34
|
-
|
|
35
|
-
#### `handleSonicPref_1`
|
|
36
|
-
|
|
37
|
-
Set master Sonic license org pref. Body: `value` (bool), `appType` (`DataManager`→`ORG_PREFERENCE_SONIC_ENABLED`, `MulesoftDataPath`→`ORG_PREFERENCE_MDWENABLED`); any other `appType` string (including `CdpDataManager`) is silently accepted but writes no pref — string-equality dispatch, not enum validation. Atomic `BulkPrefOperation`; on enable runs `SonicEnablementUtil.postSonicOrgPrefEnable` — NOT a narrow single-pref flip: it additionally enables `waveReplication`, `insightsIncrementalSync`, and `waveReplicationEnabled` org-wide via `InsightsUtilImpl.enableReplicationPermsAndPrefs` (confirmed against Core source + `SonicEnablementTest`'s own doc comment). AURA-IS-CANONICAL — atomic batch + this wider replication-enablement side effect not reconstructable from a generic pref-write.
|
|
38
|
-
|
|
39
|
-
**Call:** `PATCH /headless/invoke/platform/sonic-getting-started/handle-sonic-pref` — status: `implemented`
|
|
40
|
-
|
|
41
|
-
**Inputs:**
|
|
42
|
-
|
|
43
|
-
- `value` *(`boolean`)*
|
|
44
|
-
- `appType` *(`String`)*
|
|
45
|
-
|
|
46
|
-
#### `handleOutputConnectorPref_2`
|
|
47
|
-
|
|
48
|
-
Toggle one Sonic output-connector pref. Body: `value` (bool), `connectorpref` (one of `amazonS3`, `snowflake`, `tableauHyper`, `salesforce`; controller switches on this against `PermPrefEnabler` constants, other values throw). AURA-IS-CANONICAL — substituting drops the server-enforced allowlist (contract-fidelity gate).
|
|
49
|
-
|
|
50
|
-
**Call:** `PATCH /headless/invoke/platform/sonic-getting-started/handle-output-connector-pref` — status: `implemented`
|
|
51
|
-
|
|
52
|
-
**Inputs:**
|
|
53
|
-
|
|
54
|
-
- `value` *(`boolean`)*
|
|
55
|
-
- `connectorpref` *(`String`)*
|