@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,689 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: automation-digital-wallet-configure
|
|
3
|
-
description: "Use this skill when users want to digitalWallet Setup is a 2-tab page; each tab has a separate access guard and audience, and the two do NOT compose — pick a workflow by intent. Trigger when users mention digital, wallet, digital wallet."
|
|
4
|
-
metadata:
|
|
5
|
-
version: "1.0"
|
|
6
|
-
accessCheck: "(DigitalWallet.userCanAccessDigitalWalletCustomTaggingTabSetup) || (DigitalWallet.userCanAccessDigitalWalletUnmanagedOrgsSetup)"
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Managing Digital Wallet
|
|
10
|
-
|
|
11
|
-
## When to Use This Skill
|
|
12
|
-
|
|
13
|
-
DigitalWallet Setup is a 2-tab page; each tab has a separate access guard and audience, and the two do NOT compose — pick a workflow by intent.
|
|
14
|
-
|
|
15
|
-
Install Digital Wallet tab (SDO / unmanaged orgs): installs the Digital Wallet metadata bundle. Production customer orgs do NOT use this tab; only SDO / dev / paid-prod orgs that missed install do. Its install methods are rejected (internal-only) — not callable steps here.
|
|
16
|
-
|
|
17
|
-
Consumption Tagging tab (production — the agent-driveable surface): installs the optional Consumption Tagging app.
|
|
18
|
-
- An automatic "Check Required Permissions" preflight gates the tab; you cannot continue if it fails. It requires BOTH the "Data Cloud Architect" perm set (GenieAdmin) AND the Manage App Templates permission.
|
|
19
|
-
- Prereq: the TenantEnrichedUsageEvent (TEUE) Data Lake Object must be mapped to a dataspace. get-teue-dataspaces VERIFIES this — non-empty means eligible; empty means map TEUE_dll to a dataspace first before readiness can pass.
|
|
20
|
-
- Only one app installs (maxAppCount=1); install is NOT idempotent — re-running on an already-installed org fails.
|
|
21
|
-
|
|
22
|
-
Cross-workflow: the two tabs have different guards and a user can have one without the other — a 200 on get-teue-dataspaces does NOT mean the Install-tab surface is callable, or vice versa. The Tag Data Sharing preference toggle is NOT agent-callable (rejected for Headless 360 — mandatory user consent); direct users to the Setup page to flip it. See agent_guidance for the ordered workflow and mechanics.
|
|
23
|
-
|
|
24
|
-
## Workflow
|
|
25
|
-
|
|
26
|
-
The 4 steps in this SOR back two DIFFERENT workflows on two DIFFERENT
|
|
27
|
-
tabs of the Setup page. Pick the right workflow based on intent — they
|
|
28
|
-
do NOT compose as a single chain.
|
|
29
|
-
|
|
30
|
-
Workflow A — Consumption Tagging tab (production agent flow):
|
|
31
|
-
Full chain (all in this SOR):
|
|
32
|
-
check-consumption-tagging-prereqs
|
|
33
|
-
-> get-teue-dataspaces
|
|
34
|
-
-> (if TEUE not mapped) add-teue-to-dataspace
|
|
35
|
-
-> get-consumption-tagging-template
|
|
36
|
-
-> get-consumption-tagging-template-variables
|
|
37
|
-
-> run-consumption-tagging-readiness
|
|
38
|
-
-> get-installed-consumption-tagging-apps (pre-flight)
|
|
39
|
-
-> install-consumption-tagging-app
|
|
40
|
-
-> get-installed-consumption-tagging-apps (verify)
|
|
41
|
-
The install/poll steps for Workflow B DO NOT belong to this
|
|
42
|
-
workflow — do NOT call them when driving Consumption Tagging.
|
|
43
|
-
|
|
44
|
-
### Phase 1: check-consumption-tagging-prereqs — confirm Data Cloud Architect
|
|
45
|
-
|
|
46
|
-
check-consumption-tagging-prereqs — confirm Data Cloud Architect
|
|
47
|
-
perm set (PermissionSet.Name = GenieAdmin) is assigned. Empty
|
|
48
|
-
result -> fail-fast: tell user to assign perm set in
|
|
49
|
-
Setup > Permission Sets.
|
|
50
|
-
|
|
51
|
-
### Phase 2: get-teue-dataspaces — list dataspaces with the TEUE DLO...
|
|
52
|
-
|
|
53
|
-
get-teue-dataspaces — list dataspaces with the TEUE DLO already
|
|
54
|
-
mapped. Empty result OR target dataspace not in the list ->
|
|
55
|
-
continue to step 3 to add the mapping. Non-empty result ->
|
|
56
|
-
continue to step 4 (but treat as necessary-not-sufficient — the
|
|
57
|
-
readiness chain is the authoritative gate).
|
|
58
|
-
|
|
59
|
-
### Phase 3: add-teue-to-dataspace — call
|
|
60
|
-
|
|
61
|
-
add-teue-to-dataspace — call
|
|
62
|
-
`PATCH /headless/invoke/platform/cdp-data-spaces/save-data-space-members`
|
|
63
|
-
with body
|
|
64
|
-
`{dataSpaceMemberUiConfig:{dataSpaceId:"<id>",members:[{objectDeveloperName:"TenantEnrichedUsageEvent__dll",objectType:"DLO",filterExpression:null}]}}`
|
|
65
|
-
to upsert the binding (UPSERT — idempotent on re-call). Note
|
|
66
|
-
`dataSpaceId` is the DataSpaceDefinition record id (NOT the
|
|
67
|
-
developer name); resolve via
|
|
68
|
-
`GET /services/data/v67.0/app-framework/data-spaces` first.
|
|
69
|
-
Verify by re-calling get-teue-dataspaces. Owned by CDP Core
|
|
70
|
-
Actions team. See step description for verified-live body shape
|
|
71
|
-
+ alternative endpoints.
|
|
72
|
-
|
|
73
|
-
### Phase 4: get-consumption-tagging-template — fetch the canonical template
|
|
74
|
-
|
|
75
|
-
get-consumption-tagging-template — fetch the canonical template
|
|
76
|
-
(sfdc_internal__DigitalWalletConsumptionTagging). Returns
|
|
77
|
-
readinessUrl, autoSetupUrl, maxAppCount=1. Cheap; do this for
|
|
78
|
-
agent grounding even if the template id is hardcoded.
|
|
79
|
-
|
|
80
|
-
### Phase 5: get-consumption-tagging-template-variables — discover the
|
|
81
|
-
|
|
82
|
-
get-consumption-tagging-template-variables — discover the
|
|
83
|
-
body shape for readiness + install. Returns the dloDataspace
|
|
84
|
-
variable schema (DataSpaceType wrapper around dataSpaceName).
|
|
85
|
-
Skip if the agent already knows the canonical body shape.
|
|
86
|
-
|
|
87
|
-
### Phase 6: run-consumption-tagging-readiness — AUTHORITATIVE gate. POST
|
|
88
|
-
|
|
89
|
-
run-consumption-tagging-readiness — AUTHORITATIVE gate. POST
|
|
90
|
-
body `{templateValues:{dloDataspace:{dataSpaceName:"<n>"}}}`.
|
|
91
|
-
Read tasks[].readinessStatus — any "Failed" task means do NOT
|
|
92
|
-
proceed to install; the message tells the user what to fix.
|
|
93
|
-
A 403 here means the user lacks
|
|
94
|
-
Manage App Templates permission (the
|
|
95
|
-
server-side access check the LWC consumes via @salesforce/accessCheck).
|
|
96
|
-
|
|
97
|
-
### Phase 7: get-installed-consumption-tagging-apps (pre-flight) — call
|
|
98
|
-
|
|
99
|
-
get-installed-consumption-tagging-apps (pre-flight) — call
|
|
100
|
-
with templateSourceId=sfdc_internal__DigitalWalletConsumptionTagging.
|
|
101
|
-
If apps[] non-empty, app is already installed (maxAppCount=1
|
|
102
|
-
means no second install possible) — stop here, the workflow is
|
|
103
|
-
complete.
|
|
104
|
-
|
|
105
|
-
### Phase 8: install-consumption-tagging-app — POST /app-framework/apps with
|
|
106
|
-
|
|
107
|
-
install-consumption-tagging-app — POST /app-framework/apps with
|
|
108
|
-
the same dloDataspace + templateSourceId. Body must include
|
|
109
|
-
label + name (developer name) + templateSourceId + templateValues.
|
|
110
|
-
NOT idempotent — re-running on already-installed orgs fails.
|
|
111
|
-
|
|
112
|
-
### Phase 9: get-installed-consumption-tagging-apps (verify) — re-call after
|
|
113
|
-
|
|
114
|
-
get-installed-consumption-tagging-apps (verify) — re-call after
|
|
115
|
-
install to confirm the new app appears in apps[]. Use
|
|
116
|
-
appHubUrl from install response to surface to the user as the
|
|
117
|
-
link to the live Consumption Insights dashboard.
|
|
118
|
-
|
|
119
|
-
Workflow B — Install Digital Wallet tab (SDO / unmanaged orgs only):
|
|
120
|
-
Steps: get-install-status -> initiate-digital-wallet-install-unmanaged ->
|
|
121
|
-
get-install-status (poll loop).
|
|
122
|
-
Production customer orgs do NOT use this workflow — Digital Wallet
|
|
123
|
-
auto-installs during Data Cloud provisioning. Only SDO / dev /
|
|
124
|
-
paid-prod orgs that missed install drive this.
|
|
125
|
-
|
|
126
|
-
### Phase 10: get-install-status — read first. If statusValue=NOT_RUNNING AND
|
|
127
|
-
|
|
128
|
-
get-install-status — read first. If statusValue=NOT_RUNNING AND
|
|
129
|
-
isDigitalWalletEnabled=true, install is already done; stop.
|
|
130
|
-
If statusValue=NOT_RUNNING AND isDigitalWalletEnabled=false,
|
|
131
|
-
proceed to initiate. Other statuses
|
|
132
|
-
(PENDING/IN_PROGRESS/FAILED) — see step description for handling.
|
|
133
|
-
|
|
134
|
-
### Phase 11: initiate-digital-wallet-install-unmanaged — fire-and-forget
|
|
135
|
-
|
|
136
|
-
initiate-digital-wallet-install-unmanaged — fire-and-forget
|
|
137
|
-
async kickoff. 200/204 just means queued, not done.
|
|
138
|
-
|
|
139
|
-
### Phase 12: get-install-status — re-poll until NOT_RUNNING +
|
|
140
|
-
|
|
141
|
-
get-install-status — re-poll until NOT_RUNNING +
|
|
142
|
-
isDigitalWalletEnabled=true (success) or FAILED (escalate).
|
|
143
|
-
The NOT_RUNNING-as-success enum gotcha REQUIRES reading both
|
|
144
|
-
fields together (see step descriptions).
|
|
145
|
-
403 ACCESS_DENIED on either step -> user lacks the
|
|
146
|
-
`Digital Wallet setup access` access
|
|
147
|
-
check (NOT install failure). Production orgs without this guard
|
|
148
|
-
should never see this tab; the agent should not retry.
|
|
149
|
-
|
|
150
|
-
Workflow C — Tag Data Sharing toggle (NOT agent-callable):
|
|
151
|
-
The org preference TagDataSharingEnabled (toggle-tag-data-sharing-pref)
|
|
152
|
-
is REJECTED for Headless 360 MCP. Flipping it requires MANDATORY user
|
|
153
|
-
disclosure and explicit consent on every transition — a UI-side gate
|
|
154
|
-
not enforced at runtime, which fails the Headless 360 onboarding
|
|
155
|
-
attestation (agents cannot be trusted to consistently present a
|
|
156
|
-
required consent notice).
|
|
157
|
-
|
|
158
|
-
If a user asks to change tag-data-sharing, do NOT attempt the flip;
|
|
159
|
-
direct them to the Digital Wallet Setup page
|
|
160
|
-
(/lightning/setup/DigitalWallet/home) → Consumption Tagging tab,
|
|
161
|
-
where the human admin flips the preference against the required
|
|
162
|
-
disclosure. See step's /reason + /replacement for the full policy
|
|
163
|
-
citation.
|
|
164
|
-
|
|
165
|
-
Cross-workflow: get-teue-dataspaces is gated by a different access
|
|
166
|
-
check (CustomTaggingTabSetup) than the Install-tab steps
|
|
167
|
-
(UnmanagedOrgsSetup). A user can have one without the other — never
|
|
168
|
-
assume a 200 on get-teue-dataspaces means the install steps are
|
|
169
|
-
callable, or vice versa. The tag-data-sharing pref is NOT agent-
|
|
170
|
-
callable at all (see Workflow C) — the CustomTaggingTabSetup gate
|
|
171
|
-
grants the Setup-page UI, not an API surface for the toggle.
|
|
172
|
-
|
|
173
|
-
Access-guard method mapping (relocated from agent_description; execution detail):
|
|
174
|
-
Two distinct DigitalWallet access checks back the controller methods —
|
|
175
|
-
- userCanAccessDigitalWalletCustomTaggingTabSetup gates get-teue-dataspaces
|
|
176
|
-
(the Consumption Tagging tab's eligibility surface); maps to the
|
|
177
|
-
canAccessConsumptionTaggingTabSetup tab-visibility flag.
|
|
178
|
-
- userCanAccessDigitalWalletUnmanagedOrgsSetup gates the Install-tab methods
|
|
179
|
-
(initiate-digital-wallet-install-unmanaged and get-install-status; the GET poll
|
|
180
|
-
carries the NOT_RUNNING-as-success enum gotcha — read statusValue and
|
|
181
|
-
isDigitalWalletEnabled together); maps to the canAccessUnmanagedOrgs flag.
|
|
182
|
-
A user can hold one guard without the other, so never infer one tab's callability
|
|
183
|
-
from the other's 200.
|
|
184
|
-
Consumption Tagging install detail (controllers/endpoints/template id) already
|
|
185
|
-
documented in Workflow A steps above: the Digital Wallet setup service.getTEUEDataspaces,
|
|
186
|
-
CDP Data Space operations.saveDataSpaceMembers, and the public app-framework-connect-api
|
|
187
|
-
template/readiness/apps endpoints anchored on template id
|
|
188
|
-
sfdc_internal__DigitalWalletConsumptionTagging (templateType=app, maxAppCount=1). The
|
|
189
|
-
Manage App Templates access check is server-side (LWC consumes @salesforce/accessCheck);
|
|
190
|
-
no callable endpoint — a 403 on readiness/apps is how the agent observes it.
|
|
191
|
-
|
|
192
|
-
## Critical Constraints
|
|
193
|
-
|
|
194
|
-
**Preconditions:**
|
|
195
|
-
|
|
196
|
-
- User must have DigitalWallet AccessDigitalWalletCustomTaggingTabSetup access (check: `Digital Wallet tagging setup access`)
|
|
197
|
-
- User must have DigitalWallet AccessDigitalWalletUnmanagedOrgsSetup access (check: `Digital Wallet setup access`)
|
|
198
|
-
- Org must NOT be a FREE edition. Digital Wallet does not install in FREE orgs.
|
|
199
|
-
Local dev requires license-editor giving Enterprise + GenieDataPlatformStarter.
|
|
200
|
-
- Data Cloud license (GenieDataPlatformStarter or higher) must be provisioned.
|
|
201
|
-
Without it, install completes-but-empty: TEUE DLOs (TenantBillingUsageEvent__dll,
|
|
202
|
-
TenantEnrichedUsageEvent__dll, etc.) won't populate.
|
|
203
|
-
- Org perm `DigitalWalletEnabled` must be true. Provisioned by license-editor / TA
|
|
204
|
-
pipeline; not settable through this SOR. Setup-page button + this SOR's initiate
|
|
205
|
-
step force-install when set; otherwise local dev orgs skip install by Data Cloud
|
|
206
|
-
resource policy.
|
|
207
|
-
- Data Cloud (PRG) provisioning must complete BEFORE install for DLOs to materialize.
|
|
208
|
-
Sequence: enable license -> wait for TA -> run Data Cloud Setup provisioning -> run
|
|
209
|
-
this SOR's install kickoff.
|
|
210
|
-
|
|
211
|
-
## Verification Checklist
|
|
212
|
-
|
|
213
|
-
After every write operation, confirm the effect by re-reading state:
|
|
214
|
-
|
|
215
|
-
- After `get-teue-dataspaces`, `check-consumption-tagging-prereqs`: call `run-consumption-tagging-readiness` (`POST /services/data/v67.0/app-framework/templates/sfdc_internal__DigitalWalletConsumptionTagging/readiness`)
|
|
216
|
-
- After (write): call `get-installed-consumption-tagging-apps` (`GET /services/data/v67.0/app-framework/apps`)
|
|
217
|
-
- After (write): call `check-consumption-tagging-prereqs` (`GET /services/data/v67.0/query`)
|
|
218
|
-
|
|
219
|
-
## Operations Reference
|
|
220
|
-
|
|
221
|
-
Operations grouped by purpose. Use these as the building blocks for the workflows above.
|
|
222
|
-
|
|
223
|
-
### Summary
|
|
224
|
-
|
|
225
|
-
| Operation | Purpose | Status | Call | Depends on |
|
|
226
|
-
|-----------|---------|--------|------|------------|
|
|
227
|
-
| `get-teue-dataspaces` | read | implemented | `GET /headless/invoke/platform/digital-wallet` | — |
|
|
228
|
-
| `get-consumption-tagging-template` | read | implemented | `GET /services/data/v67.0/app-framework/templates/sfdc_internal__DigitalWalletConsumptionTagging` | — |
|
|
229
|
-
| `get-consumption-tagging-template-variables` | read | implemented | `GET /services/data/v67.0/app-framework/templates/sfdc_internal__DigitalWalletConsumptionTagging/variables` | — |
|
|
230
|
-
| `run-consumption-tagging-readiness` | verify | implemented | `POST /services/data/v67.0/app-framework/templates/sfdc_internal__DigitalWalletConsumptionTagging/readiness` | `get-teue-dataspaces`, `check-consumption-tagging-prereqs` |
|
|
231
|
-
| `install-consumption-tagging-app` | write | implemented | `POST /services/data/v67.0/app-framework/apps` | `run-consumption-tagging-readiness` |
|
|
232
|
-
| `get-installed-consumption-tagging-apps` | verify | implemented | `GET /services/data/v67.0/app-framework/apps` | — |
|
|
233
|
-
| `add-teue-to-dataspace` | write | implemented | `PATCH /headless/invoke/platform/cdp-data-spaces/save-data-space-members` | — |
|
|
234
|
-
| `check-consumption-tagging-prereqs` | verify | implemented | `GET /services/data/v67.0/query` | — |
|
|
235
|
-
|
|
236
|
-
### Dependency graph
|
|
237
|
-
|
|
238
|
-
```mermaid
|
|
239
|
-
graph TD
|
|
240
|
-
get_teue_dataspaces["get-teue-dataspaces (read)"]
|
|
241
|
-
get_consumption_tagging_template["get-consumption-tagging-template (read)"]
|
|
242
|
-
get_consumption_tagging_template_variables["get-consumption-tagging-template-variables (read)"]
|
|
243
|
-
run_consumption_tagging_readiness["run-consumption-tagging-readiness (verify)"]
|
|
244
|
-
install_consumption_tagging_app["install-consumption-tagging-app (write)"]
|
|
245
|
-
get_installed_consumption_tagging_apps["get-installed-consumption-tagging-apps (verify)"]
|
|
246
|
-
add_teue_to_dataspace["add-teue-to-dataspace (write)"]
|
|
247
|
-
check_consumption_tagging_prereqs["check-consumption-tagging-prereqs (verify)"]
|
|
248
|
-
get_teue_dataspaces --> run_consumption_tagging_readiness
|
|
249
|
-
check_consumption_tagging_prereqs --> run_consumption_tagging_readiness
|
|
250
|
-
run_consumption_tagging_readiness --> install_consumption_tagging_app
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
### Read operations
|
|
254
|
-
|
|
255
|
-
#### `get-teue-dataspaces`
|
|
256
|
-
|
|
257
|
-
Verify-DLO-mapped step for the Consumption Tagging tab. Returns the
|
|
258
|
-
list of CDP dataspace names that are mapped to the TenantEnrichedUsageEvent
|
|
259
|
-
Data Lake Object (TEUE_dll). Production semantics: this step is the eligibility gate for the
|
|
260
|
-
Consumption Tagging install workflow. A non-empty array means the user
|
|
261
|
-
has mapped TEUE to at least one dataspace in Data Cloud setup and can
|
|
262
|
-
continue to the Install Consumption Tagging App action. An empty array
|
|
263
|
-
means the user must first add TEUE_dll to a dataspace via Data Cloud's
|
|
264
|
-
dataspace-binding UI; this SOR does not perform that binding. Wire shape: array<string> of dataspace names (e.g., ["default"]). Confirmed via live probe on project-branch-orgfarm 2026-06-09
|
|
265
|
-
(returned ["default"]). NOT array<object> as some earlier framings
|
|
266
|
-
assumed — the controller signature is List<String> and the wire form
|
|
267
|
-
matches. Access gate: Digital Wallet tagging setup access
|
|
268
|
-
(different from the Install-tab steps' UnmanagedOrgsSetup gate; an org
|
|
269
|
-
user can have one without the other). For listing ALL dataspaces (not just TEUE-mapped), use the public
|
|
270
|
-
GET /services/data/v67.0/app-framework/data-spaces Connect API instead
|
|
271
|
-
— that returns the full DataSpace object (id, label, status, description)
|
|
272
|
-
for every dataspace the user can see. This step is intentionally
|
|
273
|
-
narrower; it filters to the TEUE DLO mapping which IS the production
|
|
274
|
-
Consumption-Tagging eligibility signal. Once this step returns a non-empty array, the agent can drive the rest
|
|
275
|
-
of the Consumption Tagging install workflow via the public
|
|
276
|
-
app-framework-connect-api family (see /notes.related_workflows for the
|
|
277
|
-
canonical template id + endpoint chain). IMPORTANT — weak-gate caveat: a non-empty return does NOT guarantee the
|
|
278
|
-
TEUE DLO is fully queryable. This step calls
|
|
279
|
-
DigitalWalletCdpDataService.getAllDataSpacesMappedForDLO, which returns
|
|
280
|
-
the dataspace name when a mapping record exists; it does not verify the
|
|
281
|
-
underlying TenantEnrichedUsageEvent__dll table is materialized in the
|
|
282
|
-
Data Cloud tenant. The authoritative gate is the
|
|
283
|
-
POST /app-framework/templates/sfdc_internal__DigitalWalletConsumptionTagging/readiness
|
|
284
|
-
chain, which evaluates `TenantEnrichedUsageEventDLOCheck` against the
|
|
285
|
-
Data Cloud tenant (verified live 2026-06-09: a "default" dataspace with
|
|
286
|
-
no actual TEUE_dll table returns this step as 200 ["default"], but the
|
|
287
|
-
readiness chain returns FailedStatus with task "The TenantEnrichedUsageEvent
|
|
288
|
-
DLO isn't in the selected data space or can't be loaded"). Treat
|
|
289
|
-
get-teue-dataspaces as a NECESSARY-not-sufficient eligibility hint; drive the readiness chain for the authoritative verdict.
|
|
290
|
-
|
|
291
|
-
**Call:** `GET /headless/invoke/platform/digital-wallet` — status: `implemented`
|
|
292
|
-
|
|
293
|
-
**Output:** `array<string>` — dataspace names (e.g., `["default"]`) mapped to the
|
|
294
|
-
`TenantEnrichedUsageEvent__dll` DLO. Empty array means no CDP dataspaces have the
|
|
295
|
-
DLO mapping; valid response, not an error.
|
|
296
|
-
|
|
297
|
-
**Notes:** error_contracts: 403 ACCESS_DENIED -> user lacks
|
|
298
|
-
Digital Wallet tagging setup access. Wrong-verb (POST/PUT/PATCH/DELETE)
|
|
299
|
-
-> 404 NOT_FOUND (dispatcher route resolves on method+path; missing pair = 404, not 405).; peer_apis: For the unfiltered list (all dataspaces in the org, not just TEUE-mapped): use
|
|
300
|
-
`GET /services/data/v67.0/app-framework/data-spaces` (returns full DataSpace objects
|
|
301
|
-
with id/label/status/etc.).
|
|
302
|
-
|
|
303
|
-
#### `get-consumption-tagging-template`
|
|
304
|
-
|
|
305
|
-
Fetch the canonical Consumption Tagging template definition. Returns
|
|
306
|
-
the AppFramework template record with readinessUrl, autoSetupUrl,
|
|
307
|
-
configurationUrl, variablesUrl, chainDefinitions, maxAppCount=1,
|
|
308
|
-
templateStatus=published. Use the returned URLs to drive the
|
|
309
|
-
subsequent readiness + install steps.
|
|
310
|
-
|
|
311
|
-
Verified live 2026-06-10: 200 OK on project-branch-orgfarm. Template
|
|
312
|
-
id `sfdc_internal__DigitalWalletConsumptionTagging` is the
|
|
313
|
-
published canonical template across all orgs.
|
|
314
|
-
|
|
315
|
-
Access guard: standard app-framework template read access
|
|
316
|
-
(read App Templates permission or equivalent;
|
|
317
|
-
the LWC consumes this via @wire(getTemplateConfig)).
|
|
318
|
-
|
|
319
|
-
**Call:** `GET /services/data/v67.0/app-framework/templates/sfdc_internal__DigitalWalletConsumptionTagging` — status: `implemented`
|
|
320
|
-
|
|
321
|
-
**Output:** Full AppFrameworkTemplate object: {id, name, label, description,
|
|
322
|
-
templateType, assetVersion, maxAppCount, variableDefinition,
|
|
323
|
-
layoutDefinition, rules, releaseInfo, icons, chainDefinitions[],
|
|
324
|
-
tags, url, configurationUrl, readinessUrl, autoSetupUrl,
|
|
325
|
-
variablesUrl, layoutUrl, rulesUrl, assetsUrl, chainsUrl,
|
|
326
|
-
templateStatus}. Use readinessUrl + maxAppCount in subsequent
|
|
327
|
-
install logic.
|
|
328
|
-
|
|
329
|
-
**Notes:** cross_team: Endpoint owner: TUA-Intel-App Dev Platform (app-framework-connect-api).; verify_via: Returns 200 with full template body; templateStatus should be
|
|
330
|
-
"published". maxAppCount is 1 — only one Consumption Tagging
|
|
331
|
-
app per org.
|
|
332
|
-
|
|
333
|
-
#### `get-consumption-tagging-template-variables`
|
|
334
|
-
|
|
335
|
-
Discover the variable schema for readiness + install body. Returns
|
|
336
|
-
the dloDataspace variable definition (variableType=DataSpaceType,
|
|
337
|
-
properties.dataSpaceName=StringType, required=[dataSpaceName],
|
|
338
|
-
strictValidation=true).
|
|
339
|
-
|
|
340
|
-
Use this to construct the templateValues body for run-readiness
|
|
341
|
-
and install-app: the dloDataspace must be an OBJECT with
|
|
342
|
-
dataSpaceName property, NOT a bare string. Verified live
|
|
343
|
-
2026-06-10 — passing a bare string returns 400 BAD_REQUEST
|
|
344
|
-
"not of expected type [Object]".
|
|
345
|
-
|
|
346
|
-
Access guard: same as get-consumption-tagging-template.
|
|
347
|
-
|
|
348
|
-
**Call:** `GET /services/data/v67.0/app-framework/templates/sfdc_internal__DigitalWalletConsumptionTagging/variables` — status: `implemented`
|
|
349
|
-
|
|
350
|
-
**Output:** `{variables: {<varname>: {label, description, required, variableType:
|
|
351
|
-
{type, required[], properties: {<prop>: {type, enums[]}},
|
|
352
|
-
strictValidation}}}}`. For Consumption Tagging the only variable
|
|
353
|
-
is `dloDataspace` (DataSpaceType wrapping `dataSpaceName: StringType`).
|
|
354
|
-
|
|
355
|
-
**Notes:** verify_via: Use the returned shape to construct templateValues for the
|
|
356
|
-
readiness POST. The schema's strictValidation=true means
|
|
357
|
-
unrecognized fields cause a 400.
|
|
358
|
-
|
|
359
|
-
### Write operations
|
|
360
|
-
|
|
361
|
-
#### `install-consumption-tagging-app`
|
|
362
|
-
|
|
363
|
-
Install the Consumption Tagging app from the canonical template.
|
|
364
|
-
Creates the app + provisions metadata/objects + Tableau Next
|
|
365
|
-
workspace assets needed by the Consumption Insights dashboard.
|
|
366
|
-
|
|
367
|
-
Body shape (per the `POST /app-framework/apps` OAS):
|
|
368
|
-
{
|
|
369
|
-
"label": "<user-facing app name>",
|
|
370
|
-
"name": "<api name (developer name) for the new app>",
|
|
371
|
-
"description": "<optional description>",
|
|
372
|
-
"assetIcon": "<optional 1.png-20.png>",
|
|
373
|
-
"templateSourceId": "sfdc_internal__DigitalWalletConsumptionTagging",
|
|
374
|
-
"templateValues": {
|
|
375
|
-
"dloDataspace": {"dataSpaceName": "<dataspace-name>"}
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
`templateSourceId` references the Consumption Tagging template;
|
|
380
|
-
`templateValues` carries the same dloDataspace binding used by the
|
|
381
|
-
readiness check.
|
|
382
|
-
|
|
383
|
-
NOT verified live during this review (would create a real app on
|
|
384
|
-
the test org). Body shape is derived from the public OAS schema
|
|
385
|
-
(AppCreateInputRepresentation) + the verified readiness body
|
|
386
|
-
shape. Agents should be ready to handle the full install flow's
|
|
387
|
-
runtime status (the response carries `runtimeRequestId` for
|
|
388
|
-
polling if the chain is async).
|
|
389
|
-
|
|
390
|
-
Pre-flight: only call after run-consumption-tagging-readiness
|
|
391
|
-
returns Complete (no Failed tasks). Post-flight: call
|
|
392
|
-
get-installed-consumption-tagging-apps to verify creation.
|
|
393
|
-
|
|
394
|
-
maxAppCount=1 from the template — re-running on an org that
|
|
395
|
-
already has a Consumption Tagging app will fail with "max app
|
|
396
|
-
count exceeded" or similar; use get-installed-consumption-tagging-apps
|
|
397
|
-
to detect already-installed.
|
|
398
|
-
|
|
399
|
-
Access guard: implicitly verifies
|
|
400
|
-
Manage App Templates permission. 403
|
|
401
|
-
ACCESS_DENIED here means the user lacks that access check
|
|
402
|
-
(same gate as readiness — the same 403 from readiness predicts
|
|
403
|
-
403 here).
|
|
404
|
-
|
|
405
|
-
**Call:** `POST /services/data/v67.0/app-framework/apps` — status: `implemented`
|
|
406
|
-
|
|
407
|
-
**Inputs:**
|
|
408
|
-
|
|
409
|
-
- `label` *(`string`)* — User-facing name for the new Consumption Tagging app instance.
|
|
410
|
-
- `name` *(`string`)* — API name (developer name) for the new app. Must be unique within
|
|
411
|
-
the org. Convention: derive from label by stripping spaces +
|
|
412
|
-
adding org-specific suffix, or match the template's
|
|
413
|
-
`consumption_tagging_<dataspace>` pattern.
|
|
414
|
-
- `templateSourceId` *(`string`)* — Template id to provision from. For Consumption Tagging, must be
|
|
415
|
-
`sfdc_internal__DigitalWalletConsumptionTagging`.
|
|
416
|
-
- `templateValues` *(`object`)* — Template variable bindings. For Consumption Tagging, must include
|
|
417
|
-
`dloDataspace: {dataSpaceName: "<name>"}` — same shape used by
|
|
418
|
-
the readiness check.
|
|
419
|
-
- `description` *(`string`)* — Optional description for the new app instance.
|
|
420
|
-
- `assetIcon` *(`string`)* — Optional icon enum 1.png-20.png; default chosen by template if omitted.
|
|
421
|
-
|
|
422
|
-
**Depends on:** `run-consumption-tagging-readiness`
|
|
423
|
-
|
|
424
|
-
**Output:** `{app: AppRepresentation, appHubUrl: string, failureMessage: string,
|
|
425
|
-
runtimeRequestId: string, state: object}`. On success, `app.id` is the
|
|
426
|
-
new app's record id; `appHubUrl` is the Tableau Next URL for the
|
|
427
|
-
installed app. `runtimeRequestId` is for polling async chains.
|
|
428
|
-
Failure populates `failureMessage`.
|
|
429
|
-
|
|
430
|
-
**Notes:** cross_team: Endpoint owner: TUA-Intel-App Dev Platform (app-framework-connect-api).; idempotency: NOT idempotent on success — re-calling after a successful install
|
|
431
|
-
with maxAppCount=1 will fail. Always pre-check via
|
|
432
|
-
get-installed-consumption-tagging-apps.; alt_path: `POST /app-framework/templates/{id}/autosetup` runs the templated
|
|
433
|
-
autosetup chain instead of an explicit /apps create. Useful when
|
|
434
|
-
the template defines a complete auto-setup flow (which Consumption
|
|
435
|
-
Tagging's chainDefinitions does — chainDefinitions[type=create]
|
|
436
|
-
+ type=update for upgrade-app + calc-field-update). Either path
|
|
437
|
-
is acceptable; /apps is more direct.
|
|
438
|
-
|
|
439
|
-
#### `add-teue-to-dataspace`
|
|
440
|
-
|
|
441
|
-
Add the TenantEnrichedUsageEvent (TEUE) Data Lake Object to a dataspace
|
|
442
|
-
so the Consumption Tagging install readiness chain (TEUE DLO check)
|
|
443
|
-
can find it. This is the step that closes the gap between
|
|
444
|
-
get-teue-dataspaces returning a dataspace name (necessary) and the
|
|
445
|
-
readiness-chain TenantEnrichedUsageEventDLOCheck passing (sufficient
|
|
446
|
-
— see weak-gate caveat on get-teue-dataspaces).
|
|
447
|
-
|
|
448
|
-
Cross-team prereq: this Setup page does not author this binding;
|
|
449
|
-
the user does it elsewhere in Data Cloud setup. Verified
|
|
450
|
-
2026-06-10 against project-branch-orgfarm: the agent-driveable
|
|
451
|
-
surface is the headless route
|
|
452
|
-
`PATCH /headless/invoke/platform/cdp-data-spaces/save-data-space-members`,
|
|
453
|
-
which dispatches to.saveDataSpaceMembers.
|
|
454
|
-
UPSERT semantics — re-running with already-mapped members is a
|
|
455
|
-
no-op. Owned by the CDP Core Actions team.
|
|
456
|
-
|
|
457
|
-
Body shape (verified live, 200 OK on the test org):
|
|
458
|
-
{
|
|
459
|
-
"dataSpaceMemberUiConfig": {
|
|
460
|
-
"dataSpaceId": "<DataSpaceDefinition Id, e.g. 0vhxx0000000001AAA>",
|
|
461
|
-
"members": [
|
|
462
|
-
{
|
|
463
|
-
"objectDeveloperName": "TenantEnrichedUsageEvent__dll",
|
|
464
|
-
"objectType": "DLO",
|
|
465
|
-
"filterExpression": null
|
|
466
|
-
}
|
|
467
|
-
]
|
|
468
|
-
}
|
|
469
|
-
}
|
|
470
|
-
|
|
471
|
-
`dataSpaceId` is the DataSpaceDefinition record id (NOT the
|
|
472
|
-
developer name). To resolve dataspace name -> id, call the
|
|
473
|
-
DataSpace list (e.g., `GET /services/data/v67.0/app-framework/data-spaces`
|
|
474
|
-
returns id + name pairs) before this step.
|
|
475
|
-
|
|
476
|
-
Per-member required fields (per the data-space validator):
|
|
477
|
-
- `objectDeveloperName`: DLO developer name like
|
|
478
|
-
`TenantEnrichedUsageEvent__dll`. The `__dll` suffix is required.
|
|
479
|
-
- `objectType`: literal string `"DLO"` (NOT "DataLakeObject" —
|
|
480
|
-
the controller checks for "DLO" specifically).
|
|
481
|
-
- `filterExpression`: optional row-level filter; pass `null`
|
|
482
|
-
for the no-filter case (TEUE for Consumption Tagging).
|
|
483
|
-
|
|
484
|
-
Returns 200 with empty body on success (Java void return type).
|
|
485
|
-
Re-running with the same DLO/dataspace pair is idempotent — no error,
|
|
486
|
-
no double-add.
|
|
487
|
-
|
|
488
|
-
Access guard: feature-gated on Data Cloud setup access. 403 means the
|
|
489
|
-
user lacks the perm; the dispatcher's silent no-op kicks in when
|
|
490
|
-
`dataSpaceService.isDataSpaceEnabled()` returns false.
|
|
491
|
-
|
|
492
|
-
Headless alternatives (cross-team, also agent-driveable):
|
|
493
|
-
- PATCH /headless/data/cdp/data-lake-object/add-dlos-to-dataspace
|
|
494
|
-
(the data lake object operation.addDlosToDataspace; same payload —
|
|
495
|
-
delegates to the same saveDataSpaceMembers method. On test org
|
|
496
|
-
this returned generic "Invalid request" 400 even with the
|
|
497
|
-
verified shape; route mounting may differ on some orgs.)
|
|
498
|
-
- PATCH /headless/analytics/unified-analytics/tableau-app/add-dloto-data-spaces
|
|
499
|
-
(Tab Next; ADDITIVE — preserves existing memberships; body
|
|
500
|
-
shape verified `{dloName, dataSpaceNames: array}`. Different
|
|
501
|
-
access guard — unified-analytics-tableau-app perm.)
|
|
502
|
-
- PUT /services/data/v67.0/ssot/data-spaces/{idOrName}/members
|
|
503
|
-
(CDP Connect API — public; documented body shape
|
|
504
|
-
`{members: [{memberName}]}` but live-probe returned a parser
|
|
505
|
-
error suggesting spec-vs-impl drift on the test org).
|
|
506
|
-
See /notes.related_workflows.add_teue_to_dataspace_prereq for
|
|
507
|
-
additional context.
|
|
508
|
-
|
|
509
|
-
**Call:** `PATCH /headless/invoke/platform/cdp-data-spaces/save-data-space-members` — status: `implemented`
|
|
510
|
-
|
|
511
|
-
**Inputs:**
|
|
512
|
-
|
|
513
|
-
- `dataSpaceMemberUiConfig` *(`object`)* — Wrapper object with `dataSpaceId` (DataSpaceDefinition record id,
|
|
514
|
-
NOT developer name — resolve via GET /app-framework/data-spaces
|
|
515
|
-
first) plus `members` array.
|
|
516
|
-
|
|
517
|
-
**Output:** `200` with empty body on success (Java void return type). Re-running
|
|
518
|
-
with the same DLO/dataspace pair is idempotent — the underlying
|
|
519
|
-
DataSpaceMemberService.create no-ops on duplicate (verified live
|
|
520
|
-
2026-06-10: TEUE_dll already in "default" dataspace, returned 200
|
|
521
|
-
with empty body, get-teue-dataspaces and
|
|
522
|
-
get-data-lake-object-instances both confirmed unchanged state).
|
|
523
|
-
|
|
524
|
-
**Notes:** verify_via: Re-call `get-teue-dataspaces` (this SOR's step) — should now return
|
|
525
|
-
the target dataspace name. For full eligibility, run
|
|
526
|
-
`POST /app-framework/templates/sfdc_internal__DigitalWalletConsumptionTagging/readiness`
|
|
527
|
-
with `{templateValues: {dloDataspace: {dataSpaceName: "<target>"}}}`
|
|
528
|
-
— the TEUE DLO check should change from FailedStatus to a Complete
|
|
529
|
-
readiness when the binding is right.; access_guard: Wrapper checks `dataSpaceService.isDataSpaceEnabled()` and silently
|
|
530
|
-
no-ops when false. Underlying DataSpaceController is gated on
|
|
531
|
-
CDP perms (Data Cloud app access / Data Cloud setup access
|
|
532
|
-
depending on action).; cross_team: Endpoint owner: CDP Core Actions (the headless route) +
|
|
533
|
-
CDP Core Onboarding (the underlying ui-cdp-components controller).
|
|
534
|
-
Encoded here as a peer step rather than a sibling SOR because it's
|
|
535
|
-
the gate that the Consumption Tagging install workflow has on TEUE
|
|
536
|
-
DLO membership; out-of-scope for the DigitalWallet team's controllers,
|
|
537
|
-
but in-scope for the agent driving Consumption Tagging install.; live_probe_2026_06_10: Verified 200 OK on project-branch-orgfarm with body
|
|
538
|
-
{"dataSpaceMemberUiConfig":{"dataSpaceId":"0vhxx0000000001AAA",
|
|
539
|
-
"members":[{"objectDeveloperName":"TenantEnrichedUsageEvent__dll",
|
|
540
|
-
"objectType":"DLO","filterExpression":null}]}}. TEUE_dll was already
|
|
541
|
-
mapped to "default" before the call — re-call was idempotent.
|
|
542
|
-
|
|
543
|
-
### Verify operations
|
|
544
|
-
|
|
545
|
-
#### `run-consumption-tagging-readiness`
|
|
546
|
-
|
|
547
|
-
Run the org-readiness chain for the Consumption Tagging template.
|
|
548
|
-
This is the AUTHORITATIVE eligibility gate (vs the weak-gate
|
|
549
|
-
get-teue-dataspaces): runs `chainDefinitions[type=orgreadiness]`
|
|
550
|
-
against the Data Cloud tenant, evaluating
|
|
551
|
-
`TenantEnrichedUsageEventDLOCheck` + `UniqueDMOCheck`. Returns
|
|
552
|
-
runtime status + tasks; success means the org is ready to
|
|
553
|
-
install Consumption Tagging.
|
|
554
|
-
|
|
555
|
-
Verified live 2026-06-10 against project-branch-orgfarm: 201 returned
|
|
556
|
-
with status=FailedStatus when TEUE DLO is not actually queryable
|
|
557
|
-
in the selected dataspace (the readiness chain hit
|
|
558
|
-
INVALID_ARGUMENT on the underlying TEUE table query, even though
|
|
559
|
-
get-teue-dataspaces returned ["default"] — that's the weak-gate
|
|
560
|
-
caveat in action).
|
|
561
|
-
|
|
562
|
-
Body shape (verified):
|
|
563
|
-
{
|
|
564
|
-
"templateValues": {
|
|
565
|
-
"dloDataspace": {"dataSpaceName": "<dataspace-name>"}
|
|
566
|
-
}
|
|
567
|
-
}
|
|
568
|
-
|
|
569
|
-
The dloDataspace must be an OBJECT with dataSpaceName property
|
|
570
|
-
(per variableType=DataSpaceType in get-...-template-variables) —
|
|
571
|
-
NOT a bare string. Passing a string returns 400 BAD_REQUEST
|
|
572
|
-
"not of expected type [Object]".
|
|
573
|
-
|
|
574
|
-
Access guard: implicitly verifies
|
|
575
|
-
Manage App Templates permission (the access
|
|
576
|
-
check the LWC consumes via @salesforce/accessCheck). 403
|
|
577
|
-
ACCESS_DENIED here means the user lacks that access check.
|
|
578
|
-
|
|
579
|
-
Read tasks[].readinessStatus to interpret:
|
|
580
|
-
- "Complete" — gate passed
|
|
581
|
-
- "Warning" — proceeded with default value-on-error (some
|
|
582
|
-
underlying check failed but the chain continued)
|
|
583
|
-
- "Failed" — gate failed; do NOT proceed to install. Read
|
|
584
|
-
the task's `message` for the user-facing reason (e.g.,
|
|
585
|
-
"TenantEnrichedUsageEvent DLO isn't in the selected data
|
|
586
|
-
space or can't be loaded").
|
|
587
|
-
|
|
588
|
-
**Call:** `POST /services/data/v67.0/app-framework/templates/sfdc_internal__DigitalWalletConsumptionTagging/readiness` — status: `implemented`
|
|
589
|
-
|
|
590
|
-
**Inputs:**
|
|
591
|
-
|
|
592
|
-
- `templateValues` *(`object`)* — Object containing the template variables. For Consumption Tagging,
|
|
593
|
-
must include `dloDataspace: {dataSpaceName: "<name>"}`. The
|
|
594
|
-
dataspace name comes from get-teue-dataspaces; resolve to the
|
|
595
|
-
full DataSpace object via app-framework/data-spaces if needed.
|
|
596
|
-
- **Source:** output of `get-teue-dataspaces`
|
|
597
|
-
|
|
598
|
-
**Depends on:** `get-teue-dataspaces`, `check-consumption-tagging-prereqs`
|
|
599
|
-
|
|
600
|
-
**Output:** `{id: string, runtimeRequestId: string, state: object, status: string
|
|
601
|
-
(enum: SuccessStatus | FailedStatus | RunningStatus | etc.),
|
|
602
|
-
tasks: [{type, readinessStatus: enum (Complete|Warning|Failed),
|
|
603
|
-
message, tags}], warningMessage: string}`. The authoritative
|
|
604
|
-
readiness signal is `tasks[?(.type=="TemplateRequirementEvaluation")]
|
|
605
|
-
.readinessStatus` — look for "Failed" with a TenantEnrichedUsageEvent
|
|
606
|
-
DLO message to detect the binding-not-actually-mapped case.
|
|
607
|
-
|
|
608
|
-
**Notes:** cross_team: Endpoint owner: TUA-Intel-App Dev Platform (app-framework-connect-api).; verify_pattern: This step IS the verify pattern — its result determines whether
|
|
609
|
-
install-consumption-tagging-app should be called.
|
|
610
|
-
|
|
611
|
-
#### `get-installed-consumption-tagging-apps`
|
|
612
|
-
|
|
613
|
-
List Consumption Tagging app instances installed in the org. Use
|
|
614
|
-
to (a) detect already-installed before calling
|
|
615
|
-
install-consumption-tagging-app (maxAppCount=1 means re-install
|
|
616
|
-
will fail), and (b) verify after install that the app was
|
|
617
|
-
created successfully.
|
|
618
|
-
|
|
619
|
-
Verified live 2026-06-10: 200 OK on project-branch-orgfarm.
|
|
620
|
-
Returned `{apps: []}` (no Consumption Tagging app installed yet on
|
|
621
|
-
this test org).
|
|
622
|
-
|
|
623
|
-
Filter by `templateSourceId` query parameter to scope to
|
|
624
|
-
Consumption Tagging only (vs all app-framework apps in the org).
|
|
625
|
-
|
|
626
|
-
**Call:** `GET /services/data/v67.0/app-framework/apps` — status: `implemented`
|
|
627
|
-
|
|
628
|
-
**Inputs:**
|
|
629
|
-
|
|
630
|
-
- `templateSourceId` *(`string`)* — Template id to filter app list by. For Consumption Tagging
|
|
631
|
-
detection, pass `sfdc_internal__DigitalWalletConsumptionTagging`.
|
|
632
|
-
|
|
633
|
-
**Output:** `{apps: [{id, name, label, templateSourceId, ...}]}`. Empty array
|
|
634
|
-
means no app from this template is installed; non-empty means at
|
|
635
|
-
least one exists (with maxAppCount=1, exactly one).
|
|
636
|
-
|
|
637
|
-
**Notes:** cross_team: Endpoint owner: TUA-Intel-App Dev Platform (app-framework-connect-api).; idempotency_use: Always call BEFORE install-consumption-tagging-app to detect
|
|
638
|
-
already-installed; the install endpoint is NOT idempotent on
|
|
639
|
-
a maxAppCount=1 template.
|
|
640
|
-
|
|
641
|
-
#### `check-consumption-tagging-prereqs`
|
|
642
|
-
|
|
643
|
-
Verify the calling user is assigned the "Data Cloud Architect" perm set
|
|
644
|
-
(PermissionSet.Name = "GenieAdmin"), which is the explicitly checkable
|
|
645
|
-
half of the Consumption Tagging tab's "Check Required Permissions"
|
|
646
|
-
preflight. Returns a record on hit (user is assigned), zero records
|
|
647
|
-
on miss (user is not assigned — the agent should fail-fast and tell
|
|
648
|
-
the user to get the Data Cloud Architect perm set assigned in
|
|
649
|
-
Setup > Permission Sets before proceeding to readiness check or
|
|
650
|
-
app install).
|
|
651
|
-
|
|
652
|
-
The preflight's OTHER check —
|
|
653
|
-
Manage App Templates permission — is a server-side
|
|
654
|
-
access check the LWC consumes via @salesforce/accessCheck/...; it
|
|
655
|
-
has no public callable endpoint. The agent verifies it IMPLICITLY by
|
|
656
|
-
attempting the gated POST /app-framework/templates/{id}/readiness
|
|
657
|
-
or POST /app-framework/apps action: a 403 ACCESS_DENIED there
|
|
658
|
-
indicates this access check failed. Document both outcomes when
|
|
659
|
-
orchestrating the install workflow.
|
|
660
|
-
|
|
661
|
-
Wire form: SOQL via REST. Bind `:userId` to `$User.Id` (or pass an
|
|
662
|
-
explicit Id literal) and use the existing PermissionSetAssignment
|
|
663
|
-
shape — `LDS GraphQL does NOT expose PermissionSetAssignment` (it's
|
|
664
|
-
not a UIAPI entity), so the canonical agent path is the SOQL query
|
|
665
|
-
endpoint, not /graphql.
|
|
666
|
-
|
|
667
|
-
**Call:** `GET /services/data/v67.0/query` — status: `implemented`
|
|
668
|
-
|
|
669
|
-
**Inputs:**
|
|
670
|
-
|
|
671
|
-
- `q` *(`string`)* — SOQL query string. Canonical form:
|
|
672
|
-
`SELECT Id, AssigneeId, PermissionSet.Name, PermissionSet.Label
|
|
673
|
-
FROM PermissionSetAssignment
|
|
674
|
-
WHERE AssigneeId = ':userId' AND PermissionSet.Name = 'GenieAdmin'
|
|
675
|
-
LIMIT 1`
|
|
676
|
-
|
|
677
|
-
**Output:** {totalSize: int, done: bool, records: [{Id: string, AssigneeId: string, PermissionSet: {Name: string, Label: string}}]}
|
|
678
|
-
Empty records[] means the user lacks the Data Cloud Architect perm
|
|
679
|
-
set. Verified live 2026-06-09 against project-branch-orgfarm:
|
|
680
|
-
assigned user returned totalSize=1 with PermissionSet.Name='GenieAdmin',
|
|
681
|
-
Label='Data Cloud Architect'.
|
|
682
|
-
|
|
683
|
-
**Notes:** perm_set: {'name': 'GenieAdmin', 'label': 'Data Cloud Architect', 'why': 'The Consumption Tagging preflight requires the Data Cloud Architect\nperm set so the user has authority to administer Data Cloud objects\n(DLO mappings, dataspace bindings) — without it, the install\ntemplate cannot bind to a dataspace.'}; implicit_access_check: Manage App Templates permission; implicit_check_verified_by: POST /services/data/v67.0/app-framework/templates/sfdc_internal__DigitalWalletConsumptionTagging/readiness
|
|
684
|
-
— a 403 ACCESS_DENIED on this call indicates the user lacks the
|
|
685
|
-
Manage App Templates permission access check.
|
|
686
|
-
|
|
687
|
-
## Notes
|
|
688
|
-
|
|
689
|
-
- **related_workflows:** {'consumption_tagging_app_install': {'description': 'The full "Install Consumption Tagging App" workflow on the\nConsumption Tagging tab is implemented client-side in the\nconsumptionTaggingPrereqStep / consumptionTaggingInstallStep\nLWC modules (under core/ui-digital-wallet-components/modules/\nsetup_digital_wallet/) and routes to the public\napp-framework-connect-api family — anchored on the canonical\ntemplate id `sfdc_internal__DigitalWalletConsumptionTagging`\n(templateType=app, maxAppCount=1, templateStatus=published).\n\nThe chain an agent would drive:\n\n1. PermissionSetAssignment check (LDS GraphQL on the calling\n user) + Enhanced Permission Set List enabled check —\n the "Check Required Permissions" preflight. Pure UI / LDS\n surface — no Apex controller equivalent.\n2. get-teue-dataspaces (this SOR\'s step) — verify TEUE_dll is\n mapped to a dataspace. Eligibility gate.\n3. GET /app-framework/templates/sfdc_internal__DigitalWalletConsumptionTagging\n — fetch template config. Returns readinessUrl + autoSetupUrl\n + maxAppCount=1.\n4. POST /app-framework/templates/sfdc_internal__DigitalWalletConsumptionTagging/readiness\n — run the org-readiness chain (defined inline by the template\n at chainDefinitions[type=orgreadiness]).\n5. POST /app-framework/apps — create the app from the template.\n Body carries label + name + assetIds + dataSpace binding.\n Alt: POST .../templates/{id}/autosetup — runs the templated\n auto-setup chain instead of an explicit create.\n\nThe LWC analyticsAppFrameworkApi imports (`getTemplateConfig`,\n`readinessCheck`, `createApp`, `getApps`) are the JS wrappers\naround endpoints 3-5 above. NOT the older wave/* family — that\nauthors templates rather than installs them.\n\nVerified live 2026-06-09 against project-branch-orgfarm:\nGET /app-framework/templates/sfdc_internal__DigitalWalletConsumptionTagging\nreturned 200 with the full template definition.', 'canonical_template_id': 'sfdc_internal__DigitalWalletConsumptionTagging', 'connect_api_chain': [{'method': 'GET', 'path': '/services/data/v67.0/app-framework/templates', 'module': 'app-framework-connect-api', 'note': 'List templates the org can install (filter by type=app); Consumption Tagging is sfdc_internal__DigitalWalletConsumptionTagging.'}, {'method': 'GET', 'path': '/services/data/v67.0/app-framework/templates/sfdc_internal__DigitalWalletConsumptionTagging', 'module': 'app-framework-connect-api', 'note': 'Fetch template config (analyticsAppFrameworkApi.getTemplateConfig). Returns readinessUrl, autoSetupUrl, maxAppCount=1, chainDefinitions.'}, {'method': 'GET', 'path': '/services/data/v67.0/app-framework/templates/sfdc_internal__DigitalWalletConsumptionTagging/variables', 'module': 'app-framework-connect-api', 'note': 'Discover the readiness/install body schema. Returns dloDataspace variable definition (variableType=DataSpaceType, required=[dataSpaceName]); use the returned schema to construct templateValues for /readiness and /apps.'}, {'method': 'POST', 'path': '/services/data/v67.0/app-framework/templates/sfdc_internal__DigitalWalletConsumptionTagging/readiness', 'module': 'app-framework-connect-api', 'note': 'Run the org-readiness chain before installing (analyticsAppFrameworkApi.readinessCheck).\nREQUIRED body: `{"templateValues": {"dloDataspace": {"dataSpaceName": "<dataspace>"}}}`.\nThe dloDataspace variable is typed `DataSpaceType` (object with required `dataSpaceName`\nproperty), NOT a bare string — verified via GET .../variables on the template.\nReturns runtime status + tasks; the authoritative readiness signal is\n`tasks[?(.type=="TemplateRequirementEvaluation")].readinessStatus` — look for "Failed"\nwith message about TenantEnrichedUsageEvent DLO not being in the data space.'}, {'method': 'POST', 'path': '/services/data/v67.0/app-framework/apps', 'module': 'app-framework-connect-api', 'note': 'Create the Consumption Tagging app from the template (analyticsAppFrameworkApi.createApp). Body includes label / name / dataspace binding / template reference.'}, {'method': 'POST', 'path': '/services/data/v67.0/app-framework/templates/sfdc_internal__DigitalWalletConsumptionTagging/autosetup', 'module': 'app-framework-connect-api', 'note': 'Alternative install path — runs the templated autosetup chain instead of an explicit POST /apps.'}, {'method': 'GET', 'path': '/services/data/v67.0/app-framework/data-spaces', 'module': 'app-framework-connect-api', 'note': 'List all dataspaces the user can see (peer to get-teue-dataspaces; UNFILTERED — returns full DataSpace objects).'}], 'factory_gap_observed': "The factory's controller-introspection extracts only @AuraEnabled\nmethods on DigitalWalletSetupController, so it correctly captured\nthe 3 install-tab steps but had no signal for the Consumption\nTagging tab actions (those are LWC client-side calls to\nanalyticsAppFrameworkApi + LDS GraphQL, with no Apex/Aura layer).\nA future factory pass that walks LWC sub-component imports\n(analyticsAppFrameworkApi, accessControlServices,\nlightning/uiGraphQLApi) could detect this and either suggest\nsibling-SOR creation OR extend the SOR's steps with the public\nConnect API chain documented above. Filed informally — see PR\ndescription."}}
|