@salesforce/afv-skills 1.63.0 → 1.65.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/skills/agentforce-gpt-email-generation-configure/SKILL.md +312 -0
- package/skills/agentforce-offline-experimentation-run/SKILL.md +253 -0
- package/skills/agentforce-offline-experimentation-run/scripts/build_report.py +796 -0
- package/skills/agentforce-offline-experimentation-run/scripts/resolve-token.sh +111 -0
- package/skills/agentforce-offline-experimentation-run/scripts/sfap_replay.py +1053 -0
- package/skills/agentforce-wizard-ui-forecasting-analytics-components-configure/SKILL.md +64 -0
- package/skills/agentforce-wizard-ui-sales-einstein-components-configure/SKILL.md +46 -0
- package/skills/automation-company-profile-info-query/SKILL.md +51 -0
- package/skills/automation-digital-wallet-configure/SKILL.md +689 -0
- package/skills/automation-flow-coordinate/SKILL.md +95 -0
- package/skills/automation-flow-coordinate/references/elements/action-call/action-call.md +1569 -0
- package/skills/automation-flow-coordinate/references/elements/action-call/conversation-messaging.md +96 -0
- package/skills/automation-flow-coordinate/references/elements/action-call/examples/send-sms-message.json +23 -0
- package/skills/automation-flow-coordinate/references/elements/action-call/examples/send-to-journey-no-fields.json +31 -0
- package/skills/automation-flow-coordinate/references/elements/action-call/send-to-journey.md +179 -0
- package/skills/automation-flow-coordinate/references/elements/exit-rule/examples/event-email-link-click.json +13 -0
- package/skills/automation-flow-coordinate/references/elements/exit-rule/exit-rule.md +83 -0
- package/skills/automation-flow-coordinate/references/elements/forward-to-bot-or-agent/examples/forward-to-bot-or-agent.json +69 -0
- package/skills/automation-flow-coordinate/references/elements/forward-to-bot-or-agent/forward-to-bot-or-agent.md +274 -0
- package/skills/automation-flow-coordinate/references/elements/start/audience-common.md +192 -0
- package/skills/automation-flow-coordinate/references/elements/start/automation-event-triggered.md +130 -0
- package/skills/automation-flow-coordinate/references/elements/start/data-cloud-data-change-triggered.md +92 -0
- package/skills/automation-flow-coordinate/references/elements/start/form-submission-triggered.md +88 -0
- package/skills/automation-flow-coordinate/references/elements/start/segment-triggered.md +152 -0
- package/skills/automation-flow-coordinate/references/elements/start/start.md +539 -0
- package/skills/automation-flow-coordinate/references/elements/subflow/subflow.md +152 -0
- package/skills/automation-flow-coordinate/references/elements/wait/wait.md +497 -0
- package/skills/automation-flow-coordinate/references/recipes/author/author.md +868 -0
- package/skills/automation-flow-coordinate/references/recipes/summarize/element-generic.md +300 -0
- package/skills/automation-flow-coordinate/references/recipes/summarize/reference-resolution.md +292 -0
- package/skills/automation-flow-coordinate/references/recipes/summarize/summarize.md +323 -0
- package/skills/automation-flow-coordinate/references/recipes/testing/examples/debug-output-template.md +109 -0
- package/skills/automation-flow-coordinate/references/recipes/testing/shape.md +219 -0
- package/skills/automation-flow-coordinate/references/recipes/testing/shared-stages/intent-analyzer.md +180 -0
- package/skills/automation-flow-coordinate/references/recipes/testing/workflows/debug.md +175 -0
- package/skills/automation-flow-coordinate/references/recipes/testing/workflows/promote.md +255 -0
- package/skills/automation-flow-coordinate/references/recipes/testing/workflows/save-debug.md +212 -0
- package/skills/automation-flow-coordinate/references/resources/variable/variable.md +171 -0
- package/skills/automation-flow-coordinate/references/shared/anti-patterns.md +786 -0
- package/skills/automation-flow-coordinate/references/shared/end/end.md +267 -0
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/README.md +69 -0
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/predictions.jsonl +80 -0
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/prompts.jsonl +116 -0
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/flow-type-resolver.md +321 -0
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/taxonomy.json +320 -0
- package/skills/automation-flow-coordinate/references/shared/server-functions.md +597 -0
- package/skills/automation-sandbox-post-copy-config-generate/SKILL.md +21 -11
- package/skills/automation-sandbox-post-copy-config-generate/assets/config_template.json +10 -0
- package/skills/automation-sandbox-post-copy-config-generate/assets/json_schema.json +33 -1
- package/skills/automation-sandbox-post-copy-config-generate/references/configuration_catalog.md +44 -1
- package/skills/automation-sandbox-post-copy-configure/SKILL.md +132 -124
- package/skills/automation-sandbox-post-copy-configure/references/flow_activation_path.md +151 -0
- package/skills/automation-sandbox-post-copy-configure/references/scheduled_apex_path.md +55 -9
- package/skills/automotive-cloud-appraisal-management-settings-configure/SKILL.md +69 -0
- package/skills/automotive-cloud-dealer-essentials-configure/SKILL.md +78 -0
- package/skills/automotive-cloud-ground-agent-data-pipelines-configure/SKILL.md +373 -0
- package/skills/automotive-cloud-ground-mfg-agent-data-pipelines-configure/SKILL.md +273 -0
- package/skills/automotive-cloud-mfg-agent-data-pipelines-configure/SKILL.md +259 -0
- package/skills/automotive-cloud-mfg-sales-concierge-agent-create/SKILL.md +369 -0
- package/skills/automotive-cloud-mfg-sales-concierge-foundation-configure/SKILL.md +542 -0
- package/skills/automotive-cloud-mfg-sales-concierge-foundation-coordinate/SKILL.md +159 -0
- package/skills/automotive-cloud-mfg-sales-concierge-orchestrator-agent-create/SKILL.md +349 -0
- package/skills/automotive-cloud-mfg-sales-concierge-orchestrator-configure/SKILL.md +505 -0
- package/skills/automotive-cloud-sales-concierge-agent-create/SKILL.md +380 -0
- package/skills/automotive-cloud-sales-concierge-foundation-configure/SKILL.md +567 -0
- package/skills/automotive-cloud-sales-concierge-foundation-coordinate/SKILL.md +159 -0
- package/skills/automotive-cloud-sales-concierge-orchestrator-agent-create/SKILL.md +360 -0
- package/skills/automotive-cloud-sales-concierge-orchestrator-configure/SKILL.md +539 -0
- package/skills/automotive-cloud-sales-concierge-search-grounding-configure/SKILL.md +358 -0
- package/skills/commerce-b2b-merchant-quote-configure/SKILL.md +602 -0
- package/skills/commerce-b2b-store-configure/SKILL.md +251 -0
- package/skills/commerce-credit-memo-create/SKILL.md +139 -0
- package/skills/commerce-delivery-business-hours-configure/SKILL.md +277 -0
- package/skills/commerce-delivery-estimation-apply/SKILL.md +155 -0
- package/skills/commerce-delivery-estimation-configure/SKILL.md +377 -0
- package/skills/commerce-delivery-routing-specs-integrate/SKILL.md +174 -0
- package/skills/commerce-estimate-bopis-query/SKILL.md +279 -0
- package/skills/commerce-estimate-delivery-date-query/SKILL.md +349 -0
- package/skills/commerce-fees-apply/SKILL.md +227 -0
- package/skills/commerce-fulfillment-routing-analyze/SKILL.md +200 -0
- package/skills/commerce-guest-buyer-create/SKILL.md +173 -0
- package/skills/commerce-location-bopis-configure/SKILL.md +378 -0
- package/skills/commerce-location-business-hours-configure/SKILL.md +235 -0
- package/skills/commerce-location-delivery-processing-time-configure/SKILL.md +309 -0
- package/skills/commerce-location-graph-integrate/SKILL.md +131 -0
- package/skills/commerce-location-shipping-carrier-method-configure/SKILL.md +755 -0
- package/skills/commerce-location-temporary-operating-hours-configure/SKILL.md +331 -0
- package/skills/commerce-merchant-buyer-groups-configure/SKILL.md +579 -0
- package/skills/commerce-merchant-buyer-user-onboarding-create/SKILL.md +626 -0
- package/skills/commerce-merchant-catalog-configure/SKILL.md +614 -0
- package/skills/commerce-merchant-extension-provider-configure/SKILL.md +368 -0
- package/skills/commerce-merchant-insights-account-health-churn-analyze/SKILL.md +118 -0
- package/skills/commerce-merchant-insights-inventory-returns-analyze/SKILL.md +65 -0
- package/skills/commerce-merchant-insights-order-shopper-get/SKILL.md +90 -0
- package/skills/commerce-merchant-insights-product-performance-analyze/SKILL.md +72 -0
- package/skills/commerce-merchant-insights-query/SKILL.md +279 -0
- package/skills/commerce-merchant-storefront-guest-access-configure/SKILL.md +656 -0
- package/skills/commerce-order-summary-change-apply/SKILL.md +375 -0
- package/skills/commerce-product-details-get/SKILL.md +363 -0
- package/skills/commerce-product-search/SKILL.md +563 -0
- package/skills/commerce-react-storefront-create/SKILL.md +350 -0
- package/skills/commerce-return-order-summary-create/SKILL.md +513 -0
- package/skills/commerce-search-relevance-analyze/SKILL.md +757 -0
- package/skills/commerce-temporary-processing-time-override-create/SKILL.md +274 -0
- package/skills/communications-initial-setup-configure/SKILL.md +630 -0
- package/skills/communications-multisite-configure/SKILL.md +571 -0
- package/skills/communications-revenue-cloud-settings-configure/SKILL.md +74 -0
- package/skills/communications-smb-fiber-catalog-create/SKILL.md +413 -0
- package/skills/communications-tmf-integrate/SKILL.md +1368 -0
- package/skills/consumer-goods-promotion-bo-api-deploy/SKILL.md +54 -107
- package/skills/consumer-goods-promotion-bo-api-deploy/assets/set-comment-value/payloads/copy.json +1 -1
- package/skills/consumer-goods-promotion-bo-api-deploy/references/conventions-and-payload-rules.md +82 -5
- package/skills/consumer-goods-promotion-bo-api-deploy/references/generate-and-wire.md +35 -2
- package/skills/consumer-goods-promotion-bo-api-deploy/references/preflight-and-seed-queries.md +149 -0
- package/skills/consumer-goods-promotion-bo-api-deploy/references/smoke-and-verify.md +17 -1
- package/skills/consumer-goods-visit-activity-act4-questions-assign/SKILL.md +448 -0
- package/skills/consumer-goods-visit-activity-act5-standard-create/SKILL.md +269 -0
- package/skills/consumer-goods-visit-activity-act6-assortment-configure/SKILL.md +271 -0
- package/skills/consumer-goods-visit-activity-act7-account-scoping-create/SKILL.md +382 -0
- package/skills/consumer-goods-visit-activity-act8-plan-attach-create/SKILL.md +373 -0
- package/skills/consumer-goods-visit-activity-act9-proof-validate/SKILL.md +389 -0
- package/skills/consumer-goods-visit-and-activity-act1-specification-create/SKILL.md +338 -0
- package/skills/consumer-goods-visit-and-activity-act2-template-create/SKILL.md +547 -0
- package/skills/consumer-goods-visit-and-activity-act3-definition-create/SKILL.md +346 -0
- package/skills/consumer-goods-visit-and-activity-configure/SKILL.md +1110 -0
- package/skills/crm-analytics-adoption-insights-configure/SKILL.md +224 -0
- package/skills/crm-analytics-custom-report-type-lightning-configure/SKILL.md +418 -0
- package/skills/crm-analytics-dashboards-configure/SKILL.md +731 -0
- package/skills/crm-analytics-operational-analytics-metadata-bridge-migrate/SKILL.md +233 -0
- package/skills/crm-analytics-report-notifications-ui-configure/SKILL.md +184 -0
- package/skills/crm-analytics-sharing-inheritance-coverage-analyze/SKILL.md +167 -0
- package/skills/crm-analytics-sonic-getting-started-configure/SKILL.md +55 -0
- package/skills/crm-analytics-tableau-next-app-deploy/SKILL.md +1350 -0
- package/skills/crm-analytics-tableau-next-c360-basemodel-validate/SKILL.md +1862 -0
- package/skills/crm-analytics-tableau-next-datacloud-validate/SKILL.md +83 -0
- package/skills/crm-analytics-tableau-next-provisioning-validate/SKILL.md +81 -0
- package/skills/data360-activation-create/SKILL.md +104 -0
- package/skills/data360-activation-external-platform-get/SKILL.md +49 -0
- package/skills/data360-activation-target-create/SKILL.md +93 -0
- package/skills/data360-activation-v2-create/SKILL.md +456 -0
- package/skills/data360-audience-dmo-get/SKILL.md +38 -0
- package/skills/data360-calculated-affinity-create/SKILL.md +82 -0
- package/skills/data360-calculated-insight-create/SKILL.md +148 -0
- package/skills/data360-catalog-metadata-create/SKILL.md +183 -0
- package/skills/data360-code-extension-create/SKILL.md +115 -0
- package/skills/data360-communication-capping-create/SKILL.md +227 -0
- package/skills/data360-connection-create/SKILL.md +491 -0
- package/skills/data360-content-lens-create/SKILL.md +181 -0
- package/skills/data360-data-action-create/SKILL.md +126 -0
- package/skills/data360-data-action-target-create/SKILL.md +181 -0
- package/skills/data360-data-clean-room-create/SKILL.md +238 -0
- package/skills/data360-data-governance-create/SKILL.md +746 -0
- package/skills/data360-data-graph-create/SKILL.md +82 -0
- package/skills/data360-data-harmonized-model-object-reference-create/SKILL.md +38 -0
- package/skills/data360-data-lake-object-create/SKILL.md +207 -0
- package/skills/data360-data-model-object-catalog-get/SKILL.md +49 -0
- package/skills/data360-data-model-object-create/SKILL.md +128 -0
- package/skills/data360-data-model-object-mapping-create/SKILL.md +106 -0
- package/skills/data360-data-space-create/SKILL.md +161 -0
- package/skills/data360-data-streams-create/SKILL.md +324 -0
- package/skills/data360-engagement-signal-get/SKILL.md +38 -0
- package/skills/data360-experiment-create/SKILL.md +82 -0
- package/skills/data360-goal-based-campaign-create/SKILL.md +192 -0
- package/skills/data360-harmonization-process-history-get/SKILL.md +38 -0
- package/skills/data360-harmonized-unstructured-dmo-create/SKILL.md +84 -0
- package/skills/data360-identity-resolution-create/SKILL.md +115 -0
- package/skills/data360-intelligent-document-processing-create/SKILL.md +148 -0
- package/skills/data360-knowledge-graph-construction-create/SKILL.md +93 -0
- package/skills/data360-knowledge-graph-create/SKILL.md +216 -0
- package/skills/data360-knowledge-space-mcp-configure/SKILL.md +475 -0
- package/skills/data360-machine-learning-mcp-configure/SKILL.md +697 -0
- package/skills/data360-multi-org-mcp-configure/SKILL.md +117 -0
- package/skills/data360-secondary-index-mcp-configure/SKILL.md +126 -0
- package/skills/data360-segment-mcp-configure/SKILL.md +159 -0
- package/skills/data360-semantic-calculated-dimension-mcp-configure/SKILL.md +93 -0
- package/skills/data360-semantic-calculated-measurement-mcp-configure/SKILL.md +93 -0
- package/skills/data360-semantic-data-object-mcp-configure/SKILL.md +93 -0
- package/skills/data360-semantic-dimension-mcp-configure/SKILL.md +38 -0
- package/skills/data360-semantic-engine-mcp-configure/SKILL.md +62 -0
- package/skills/data360-semantic-measurement-mcp-configure/SKILL.md +38 -0
- package/skills/data360-semantic-metric-mcp-configure/SKILL.md +93 -0
- package/skills/data360-semantic-model-mcp-configure/SKILL.md +115 -0
- package/skills/data360-standard-mapping-mcp-configure/SKILL.md +38 -0
- package/skills/data360-tenant-lifecycle-mcp-configure/SKILL.md +73 -0
- package/skills/dx-devops-conflict-resolve/SKILL.md +1 -5
- package/skills/dx-devops-pipeline-manage/SKILL.md +1 -5
- package/skills/dx-devops-project-manage/SKILL.md +1 -5
- package/skills/dx-devops-promote/SKILL.md +1 -5
- package/skills/dx-devops-request-status/SKILL.md +1 -5
- package/skills/dx-lifecycle-center/SKILL.md +120 -0
- package/skills/dx-lifecycle-center/examples/workflows.md +175 -0
- package/skills/dx-lifecycle-center/references/connect-api.md +123 -0
- package/skills/dx-lifecycle-center/references/connect-org.md +184 -0
- package/skills/dx-lifecycle-center/references/deploy.md +153 -0
- package/skills/dx-lifecycle-center/references/error-handling.md +21 -0
- package/skills/dx-lifecycle-center/references/hub-org.md +37 -0
- package/skills/dx-lifecycle-center/references/list-orgs.md +99 -0
- package/skills/dx-lifecycle-center/references/request-body.md +75 -0
- package/skills/dx-lifecycle-center/references/troubleshooting.md +31 -0
- package/skills/dx-lifecycle-center/scripts/poll-deploy-status.sh +200 -0
- package/skills/dx-lifecycle-center/scripts/resolve-environment.sh +120 -0
- package/skills/dx-org-devhub-configure/SKILL.md +1 -3
- package/skills/dx-org-shape-manage/SKILL.md +1 -5
- package/skills/dx-org-snapshot-manage/SKILL.md +1 -3
- package/skills/education-cloud-academic-calendar-generate/SKILL.md +1 -3
- package/skills/education-cloud-course-catalog-migrate/SKILL.md +1 -3
- package/skills/education-cloud-domain-configure/SKILL.md +1 -3
- package/skills/education-cloud-multi-campus-configure/SKILL.md +1 -3
- package/skills/education-cloud-student-recruitment-agent-configure/SKILL.md +1 -5
- package/skills/experience-afv-query/SKILL.md +234 -0
- package/skills/experience-agentforce-vibes-in-react-configure/SKILL.md +63 -0
- package/skills/experience-apex-components-configure/SKILL.md +69 -0
- package/skills/experience-apex-pages-configure/SKILL.md +107 -0
- package/skills/experience-app-home-configure/SKILL.md +76 -0
- package/skills/experience-aura-lightning-out-access-configure/SKILL.md +58 -0
- package/skills/experience-briefcase-configure/SKILL.md +287 -0
- package/skills/experience-community-flexi-page-list-create/SKILL.md +74 -0
- package/skills/experience-community-template-definition-list-query/SKILL.md +48 -0
- package/skills/experience-community-theme-definition-list-query/SKILL.md +38 -0
- package/skills/experience-content-assets-configure/SKILL.md +86 -0
- package/skills/experience-custom-domain-create/SKILL.md +727 -0
- package/skills/experience-defer-rendering-workspace-page-setup-configure/SKILL.md +41 -0
- package/skills/experience-field-service-app-builder-configure/SKILL.md +187 -0
- package/skills/experience-flow-category-configure/SKILL.md +117 -0
- package/skills/experience-formula-configure/SKILL.md +358 -0
- package/skills/experience-global-actions-configure/SKILL.md +69 -0
- package/skills/experience-global-publisher-layouts-configure/SKILL.md +79 -0
- package/skills/experience-instrumentation-configure/SKILL.md +64 -0
- package/skills/experience-lex-engagement-configure/SKILL.md +50 -0
- package/skills/experience-lightning-bolt-open/SKILL.md +12 -0
- package/skills/experience-lightning-out-configure/SKILL.md +129 -0
- package/skills/experience-lightning-preview-configure/SKILL.md +67 -0
- package/skills/experience-lightning-types-query/SKILL.md +98 -0
- package/skills/experience-malware-scan-configure/SKILL.md +71 -0
- package/skills/experience-my-salesforce-configure/SKILL.md +126 -0
- package/skills/experience-navigation-menus-configure/SKILL.md +235 -0
- package/skills/experience-notification-types-configure/SKILL.md +206 -0
- package/skills/experience-notifications-configure/SKILL.md +75 -0
- package/skills/experience-record-discovery-query/SKILL.md +227 -0
- package/skills/experience-regenerate-previews-open/SKILL.md +94 -0
- package/skills/experience-sales-cloud-mab-configure/SKILL.md +254 -0
- package/skills/experience-schema-builder-open/SKILL.md +38 -0
- package/skills/experience-simple-record-home-configure/SKILL.md +110 -0
- package/skills/experience-static-resources-configure/SKILL.md +74 -0
- package/skills/experience-ui-bundle-2gp-deploy/SKILL.md +1 -3
- package/skills/experience-ui-bundle-features-generate/SKILL.md +1 -5
- package/skills/experience-ui-bundle-mfa-configure/SKILL.md +1 -3
- package/skills/field-service-data-capture-form-deployer-configure/SKILL.md +23 -2
- package/skills/field-service-data-capture-form-designer-configure/SKILL.md +13 -3
- package/skills/field-service-data-capture-migrate/SKILL.md +1 -3
- package/skills/field-service-mobile-branding-configure/SKILL.md +17 -3
- package/skills/field-service-objective-designer-configure/SKILL.md +72 -379
- package/skills/field-service-prework-brief-deployer-configure/SKILL.md +10 -537
- package/skills/field-service-scheduling-policy-designer-query/SKILL.md +65 -1093
- package/skills/{field-service-setup-orchestrator-get → field-service-setup-coordinate}/SKILL.md +18 -3
- package/skills/field-service-sobject-create-configure/SKILL.md +13 -213
- package/skills/field-service-voice-to-form-configure/SKILL.md +40 -11
- package/skills/field-service-work-plan-configure/SKILL.md +253 -0
- package/skills/field-service-work-rule-designer-configure/SKILL.md +121 -95
- package/skills/fsc-actionable-segmentation-settings-configure/SKILL.md +180 -0
- package/skills/fsc-digital-origination-bre-decision-matrix-foundation-create/SKILL.md +196 -0
- package/skills/fsc-digital-origination-bre-disclosures-consent-configure/SKILL.md +106 -0
- package/skills/fsc-digital-origination-bre-document-upload-configure/SKILL.md +96 -0
- package/skills/fsc-digital-origination-bre-permissions-assign/SKILL.md +111 -0
- package/skills/fsc-digital-origination-bre-setup-coordinate/SKILL.md +250 -0
- package/skills/fsc-digital-origination-bre-stp-eligibility-configure/SKILL.md +122 -0
- package/skills/fsc-digital-origination-coordinate/SKILL.md +653 -0
- package/skills/fsc-digital-origination-demo-run/SKILL.md +225 -0
- package/skills/fsc-digital-origination-execution-guardrails-validate/SKILL.md +112 -0
- package/skills/fsc-digital-origination-initial-setup-configure/SKILL.md +396 -0
- package/skills/fsc-digital-origination-pricing-setup-coordinate/SKILL.md +336 -0
- package/skills/fsc-digital-origination-pricing-setup-data-foundation-create/SKILL.md +208 -0
- package/skills/fsc-digital-origination-pricing-setup-procedure-create/SKILL.md +375 -0
- package/skills/fsc-digital-origination-product-setup-act1-permissions-assign/SKILL.md +83 -0
- package/skills/fsc-digital-origination-product-setup-coordinate/SKILL.md +248 -0
- package/skills/fsc-digital-origination-sample-data-create/SKILL.md +206 -0
- package/skills/fsc-document-checklist-settings-configure/SKILL.md +57 -0
- package/skills/fsc-flexible-hierarchy-configure/SKILL.md +148 -0
- package/skills/fsc-flexible-hierarchy-foundation-configure/SKILL.md +1430 -0
- package/skills/fsc-flexible-hierarchy-graph-config-create/SKILL.md +471 -0
- package/skills/fsc-flexible-hierarchy-rule-based-graph-deploy/SKILL.md +429 -0
- package/skills/fsc-pricing-product-configurator-configure/SKILL.md +150 -0
- package/skills/fsc-pricing-salesforce-omnistudio-switch/SKILL.md +123 -0
- package/skills/fsc-product-act2-catalog-categories-create/SKILL.md +82 -0
- package/skills/fsc-product-act3-attributes-create/SKILL.md +249 -0
- package/skills/fsc-product-act4-classification-assignment-create/SKILL.md +196 -0
- package/skills/fsc-product-act5-considerations-get/SKILL.md +44 -0
- package/skills/fsc-stage-management-apex-flow-deploy/SKILL.md +384 -0
- package/skills/fsc-stage-management-compliant-data-sharing-configure/SKILL.md +144 -0
- package/skills/fsc-stage-management-decision-matrices-create/SKILL.md +107 -0
- package/skills/fsc-stage-management-definition-assignments-create/SKILL.md +189 -0
- package/skills/fsc-stage-management-definition-create/SKILL.md +108 -0
- package/skills/fsc-stage-management-permissions-assign/SKILL.md +143 -0
- package/skills/fsc-stage-management-transitions-configure/SKILL.md +139 -0
- package/skills/health-cloud-appt-booking-config-configure/SKILL.md +135 -0
- package/skills/health-cloud-appt-booking-url-config-configure/SKILL.md +134 -0
- package/skills/health-cloud-care-provider-affl-role-config-configure/SKILL.md +136 -0
- package/skills/health-cloud-care-provider-search-config-configure/SKILL.md +134 -0
- package/skills/health-cloud-care-requests-create/SKILL.md +178 -0
- package/skills/health-cloud-initial-configure/SKILL.md +511 -0
- package/skills/health-cloud-patient-appointment-scheduling-configure/SKILL.md +1374 -0
- package/skills/health-cloud-provider-search-settings-configure/SKILL.md +924 -0
- package/skills/health-cloud-referral-management-coordinate/SKILL.md +513 -0
- package/skills/health-cloud-timeline-configure/SKILL.md +622 -0
- package/skills/health-cloud-virtual-visit-config-configure/SKILL.md +135 -0
- package/skills/industries-account-score-settings-query/SKILL.md +78 -0
- package/skills/industries-actionable-list-data-sources-dmo-configure/SKILL.md +177 -0
- package/skills/industries-ad-product-availability-search/SKILL.md +399 -0
- package/skills/industries-advanced-account-forecast-settings-configure/SKILL.md +628 -0
- package/skills/industries-advanced-therapy-management-settings-configure/SKILL.md +73 -0
- package/skills/industries-atm-settings-starter-configure/SKILL.md +76 -0
- package/skills/industries-batch-document-ai-configure/SKILL.md +196 -0
- package/skills/industries-behavioral-health-app-settings-configure/SKILL.md +71 -0
- package/skills/industries-branch-management-settings-configure/SKILL.md +89 -0
- package/skills/industries-bre-decision-table-access-configure/SKILL.md +367 -0
- package/skills/industries-brokerage-settings-configure/SKILL.md +41 -0
- package/skills/industries-calendar-sync-settings-configure/SKILL.md +89 -0
- package/skills/industries-care-request-settings-configure/SKILL.md +218 -0
- package/skills/industries-case-management-intelligence-settings-configure/SKILL.md +54 -0
- package/skills/industries-catalog-process-attributes-products-configure/SKILL.md +380 -0
- package/skills/industries-catalog-process-fulfillment-configure/SKILL.md +216 -0
- package/skills/industries-catalog-process-intake-configure/SKILL.md +219 -0
- package/skills/industries-catalog-process-knowledge-configure/SKILL.md +153 -0
- package/skills/industries-catalog-process-preprocessor-configure/SKILL.md +168 -0
- package/skills/industries-cds-general-settings-configure/SKILL.md +69 -0
- package/skills/industries-claim-financial-settings-configure/SKILL.md +169 -0
- package/skills/industries-clinical-data-model-settings-configure/SKILL.md +136 -0
- package/skills/industries-clinical-data-model-settings-starter-configure/SKILL.md +105 -0
- package/skills/industries-collection-plan-settings-configure/SKILL.md +132 -0
- package/skills/industries-comms-service-console-settings-configure/SKILL.md +159 -0
- package/skills/industries-compliance-configure/SKILL.md +102 -0
- package/skills/industries-compliance-document-extraction-setup-configure/SKILL.md +76 -0
- package/skills/industries-contact-center-app-layout-configure/SKILL.md +88 -0
- package/skills/industries-contact-center-components-configure/SKILL.md +96 -0
- package/skills/industries-contact-center-path-knowledge-configure/SKILL.md +95 -0
- package/skills/industries-contact-center-user-access-assign/SKILL.md +96 -0
- package/skills/industries-course-waitlist-config-configure/SKILL.md +162 -0
- package/skills/industries-crisis-center-settings-configure/SKILL.md +84 -0
- package/skills/industries-custom-object-settings-configure/SKILL.md +94 -0
- package/skills/industries-data-cloud-integration-configure/SKILL.md +88 -0
- package/skills/industries-data-space-feature-mappings-configure/SKILL.md +245 -0
- package/skills/industries-decision-matrix-builder-configure/SKILL.md +78 -0
- package/skills/industries-decision-table-hbase-configure/SKILL.md +87 -0
- package/skills/industries-decision-table-version-configure/SKILL.md +74 -0
- package/skills/industries-decision-tables-builder-configure/SKILL.md +253 -0
- package/skills/industries-decision-tables-configure/SKILL.md +439 -0
- package/skills/industries-energy-utilities-configure/SKILL.md +251 -0
- package/skills/industries-eu-cloud-multisite-configure/SKILL.md +1008 -0
- package/skills/industries-eu-new-connections-configure/SKILL.md +30 -0
- package/skills/industries-explainability-msg-template-configure/SKILL.md +135 -0
- package/skills/industries-expression-set-message-token-configure/SKILL.md +135 -0
- package/skills/industries-field-service-settings-configure/SKILL.md +82 -0
- package/skills/industries-form-framework-settings-configure/SKILL.md +30 -0
- package/skills/industries-fsc-ai-settings-configure/SKILL.md +57 -0
- package/skills/industries-fsc-association-engine-settings-configure/SKILL.md +172 -0
- package/skills/industries-fsc-b2b-settings-configure/SKILL.md +61 -0
- package/skills/industries-fsc-insurance-settings-configure/SKILL.md +58 -0
- package/skills/industries-fsc-visa-fulfillment-setup-configure/SKILL.md +103 -0
- package/skills/industries-fsc-wealth-agent-settings-configure/SKILL.md +117 -0
- package/skills/industries-fsc-wealth-settings-configure/SKILL.md +99 -0
- package/skills/industries-fundraising-gift-entry-settings-configure/SKILL.md +120 -0
- package/skills/industries-fundraising-rfm-configure/SKILL.md +128 -0
- package/skills/industries-fundraising-settings-configure/SKILL.md +145 -0
- package/skills/industries-fundraising-source-code-gen-configure/SKILL.md +299 -0
- package/skills/industries-google-maps-api-key-settings-configure/SKILL.md +87 -0
- package/skills/industries-grantmaking-intelligence-settings-open/SKILL.md +58 -0
- package/skills/industries-hc-score-category-settings-configure/SKILL.md +167 -0
- package/skills/industries-health-engagement-settings-configure/SKILL.md +218 -0
- package/skills/industries-home-health-agentforce-setup-configure/SKILL.md +131 -0
- package/skills/industries-home-health-bundling-policy-create/SKILL.md +50 -0
- package/skills/industries-home-health-entity-labels-configure/SKILL.md +29 -0
- package/skills/industries-home-health-fsl-package-deploy/SKILL.md +71 -0
- package/skills/industries-home-health-fsl-settings-validate/SKILL.md +27 -0
- package/skills/industries-home-health-guided-setup-care-and-skill-get/SKILL.md +80 -0
- package/skills/industries-home-health-guided-setup-configure/SKILL.md +836 -0
- package/skills/industries-home-health-guided-setup-enable-org-fsl-get/SKILL.md +55 -0
- package/skills/industries-home-health-guided-setup-get-org-ready-get/SKILL.md +61 -0
- package/skills/industries-home-health-licenses-assign/SKILL.md +27 -0
- package/skills/industries-home-health-operating-hours-create/SKILL.md +40 -0
- package/skills/industries-home-health-scheduling-policy-create/SKILL.md +41 -0
- package/skills/industries-home-health-service-objective-create/SKILL.md +22 -0
- package/skills/industries-home-health-skills-create/SKILL.md +31 -0
- package/skills/industries-home-health-users-create/SKILL.md +29 -0
- package/skills/industries-icm-act3-toggles-configure/SKILL.md +198 -0
- package/skills/industries-icm-act5-genai-suggested-assessments-configure/SKILL.md +361 -0
- package/skills/industries-icm-act6-mcg-integration-configure/SKILL.md +550 -0
- package/skills/industries-integrated-care-management-configure/SKILL.md +168 -0
- package/skills/industries-object-enablement-configure/SKILL.md +86 -0
- package/skills/industries-tpm-system-processing-service-configure/SKILL.md +64 -0
- package/skills/insurance-brokerage-agency-billing-configure/SKILL.md +1 -3
- package/skills/integration-apex-settings-configure/SKILL.md +61 -0
- package/skills/marketing-e360-email-archiving-configure/SKILL.md +73 -0
- package/skills/marketing-message-test/SKILL.md +1 -3
- package/skills/nonprofit-fundraising-configure/SKILL.md +240 -0
- package/skills/nonprofit-fundraising-configure/references/gotchas.md +26 -0
- package/skills/nonprofit-fundraising-configure/references/mcp-invocation.md +678 -0
- package/skills/nonprofit-fundraising-configure/references/permission-targeting.md +35 -0
- package/skills/nonprofit-volunteer-management-model-get/SKILL.md +166 -0
- package/skills/nonprofit-volunteer-management-model-get/references/entities.md +315 -0
- package/skills/nonprofit-volunteer-management-model-get/references/relationships.md +175 -0
- package/skills/nonprofit-volunteer-management-model-get/references/themes.md +143 -0
- package/skills/nonprofit-volunteer-management-records-create/SKILL.md +121 -0
- package/skills/nonprofit-volunteer-management-records-create/references/field-guide.md +284 -0
- package/skills/nonprofit-volunteer-management-records-create/references/mcp-invocation.md +248 -0
- package/skills/nonprofit-volunteer-management-records-create/references/review-format.md +140 -0
- package/skills/nonprofit-volunteer-management-records-create/scripts/expand-series.py +632 -0
- package/skills/nonprofit-volunteer-management-records-create/scripts/render-review-table.py +419 -0
- package/skills/nonprofit-volunteer-management-records-create/scripts/tests/test_expand_series.py +690 -0
- package/skills/nonprofit-volunteer-management-records-create/scripts/tests/test_render_review_table.py +421 -0
- package/skills/nonprofit-volunteer-management-structure-generate/SKILL.md +119 -0
- package/skills/nonprofit-volunteer-management-structure-generate/references/configuration-decisions.md +159 -0
- package/skills/nonprofit-volunteer-management-structure-generate/references/discovery-interview.md +137 -0
- package/skills/nonprofit-volunteer-management-structure-generate/references/edge-cases.md +48 -0
- package/skills/nonprofit-volunteer-management-structure-generate/references/mcp-invocation.md +75 -0
- package/skills/nonprofit-volunteer-management-structure-generate/references/plan-output.md +141 -0
- package/skills/platform-custom-field-generate/SKILL.md +1 -0
- package/skills/platform-custom-field-generate/references/advanced-picklists.md +5 -5
- package/skills/platform-custom-metadata-type-generate/SKILL.md +3 -0
- package/skills/platform-custom-object-generate/SKILL.md +4 -0
- package/skills/platform-custom-permissions-configure/SKILL.md +687 -0
- package/skills/platform-custom-setting-generate/SKILL.md +3 -0
- package/skills/platform-datamask-run/SKILL.md +1 -5
- package/skills/platform-label-workbench-import-create/SKILL.md +67 -0
- package/skills/platform-permission-set-generate/SKILL.md +3 -0
- package/skills/platform-privacy-agent-settings-configure/SKILL.md +752 -0
- package/skills/platform-salesforce-connect-adapter-generate/SKILL.md +1 -3
- package/skills/platform-sandbox-configure/SKILL.md +1 -3
- package/skills/platform-value-set-generate/SKILL.md +3 -0
- package/skills/sales-call-scoring-configure/SKILL.md +1 -5
- package/skills/service-agentforce-channel-configure/SKILL.md +1 -3
- package/skills/service-agentforce-human-escalation-configure/SKILL.md +1 -3
- package/skills/service-catalog-template-coordinate/SKILL.md +1 -3
- package/skills/service-concierge-portal-generate/SKILL.md +1 -3
- package/skills/service-email-to-case-configure/SKILL.md +1 -5
- package/skills/service-itsm-agentic-setup-agent-runtime-access-assign/SKILL.md +1 -3
- package/skills/service-itsm-agentic-setup-agentforce-coordinate/SKILL.md +1 -3
- package/skills/service-itsm-agentic-setup-agentforce-studio-configure/SKILL.md +1 -3
- package/skills/service-itsm-agentic-setup-agentforce-studio-validate/SKILL.md +1 -3
- package/skills/service-itsm-agentic-setup-cmdb-access-assign/SKILL.md +1 -3
- package/skills/service-itsm-agentic-setup-cmdb-bundle-deploy/SKILL.md +1 -5
- package/skills/service-itsm-agentic-setup-cmdb-configure/SKILL.md +1 -3
- package/skills/service-itsm-agentic-setup-cmdb-coordinate/SKILL.md +1 -3
- package/skills/service-itsm-agentic-setup-cmdb-discovery-configure/SKILL.md +1 -3
- package/skills/service-itsm-agentic-setup-employee-agent-configure/SKILL.md +1 -3
- package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/SKILL.md +1 -3
- package/skills/service-itsm-agentic-setup-incident-sla-configure/SKILL.md +1 -0
- package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/SKILL.md +1 -3
- package/skills/service-itsm-agentic-setup-uel-user-create/SKILL.md +1 -9
- package/skills/service-itsm-incident-mgmt-configure/SKILL.md +1 -5
- package/skills/service-itsm-incident-priority-configure/SKILL.md +1 -3
- package/skills/service-itsm-slack-itservice-configure/SKILL.md +1 -3
- package/skills/service-itsm-swarming-configure/SKILL.md +1 -3
- package/skills/service-itsm-teams-configure/SKILL.md +1 -3
- package/skills/service-itsm-teams-debug/SKILL.md +1 -3
- package/skills/service-itsm-teams-employee-agent-configure/SKILL.md +1 -3
- package/skills/service-itsm-teams-itdesk-configure/SKILL.md +1 -3
- package/skills/service-itsm-teams-itservice-configure/SKILL.md +1 -3
- package/skills/service-native-voice-recording-transcription-configure/SKILL.md +1 -3
- package/skills/service-omni-agent-users-create/SKILL.md +1 -3
- package/skills/service-omni-agent-work-sharing-configure/SKILL.md +1 -3
- package/skills/service-omni-attribute-routing-configure/SKILL.md +1 -3
- package/skills/service-omni-base-settings-configure/SKILL.md +1 -3
- package/skills/service-omni-channel-inventory-analyze/SKILL.md +1 -3
- package/skills/service-omni-channel-limits-analyze/SKILL.md +1 -3
- package/skills/service-omni-channel-setup-coordinate/SKILL.md +1 -3
- package/skills/service-omni-command-center-analyze/SKILL.md +1 -3
- package/skills/service-omni-command-center-configure/SKILL.md +1 -3
- package/skills/service-omni-permission-set-assign/SKILL.md +1 -3
- package/skills/service-omni-presence-status-deploy/SKILL.md +1 -3
- package/skills/service-omni-presence-user-config-deploy/SKILL.md +1 -3
- package/skills/service-omni-queue-deploy/SKILL.md +1 -3
- package/skills/service-omni-queue-members-assign/SKILL.md +1 -3
- package/skills/service-omni-queue-routing-config-deploy/SKILL.md +1 -3
- package/skills/service-omni-routing-flow-deploy/SKILL.md +1 -3
- package/skills/service-omni-service-channel-configure/SKILL.md +1 -3
- package/skills/service-omni-sidebar-configure/SKILL.md +1 -3
- package/skills/service-omni-skills-based-routing-configure/SKILL.md +1 -3
- package/skills/service-omni-supervisor-config-deploy/SKILL.md +1 -3
- package/skills/service-omni-supervisor-permset-assign/SKILL.md +1 -3
- package/skills/service-omni-supervisor-surface-deploy/SKILL.md +1 -3
- package/skills/service-omni-supervisor-users-create/SKILL.md +1 -3
- package/skills/service-omni-work-skill-routing-configure/SKILL.md +1 -3
- package/skills/tableau-next-asset-create/README.md +0 -65
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: consumer-goods-visit-activity-act5-standard-create
|
|
3
|
+
description: "Act 5 of 9: Create the STANDARD activity for a newly created Visit Specification. A standard activity is an Assessment Task Definition with `IsStandardTask = true` (the only difference from the non-standard activity built in Act 3) that carries at least three KPI questions — `AssessmentKpi` = Facing, PriceSurvey, and Distribution. The offline Retail Execution app resolves a visit's standard activity through the visit's Visit Specification; a brand-new Visit Spec has none, so the Act 9 product-survey verification fails until one exists. This Act runs AUTOMATICALLY (orchestrator-triggered, never a manual user request) whenever Act 1 created a new Visit Spec (`visit_spec_is_new = true`); it is skipped automatically when the spec was reused. The standard activity is time-scoped to the SAME validity window (`ValidFrom`/`ValidTo`) as the non-standard activity from Act 3 — `IsStandardTask = true` remains its only structural difference."
|
|
4
|
+
metadata:
|
|
5
|
+
version: "1.0"
|
|
6
|
+
cliTools:
|
|
7
|
+
- tool:
|
|
8
|
+
- "sf"
|
|
9
|
+
semver: ">=2.0.0"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Act 5: Standard Activity
|
|
13
|
+
|
|
14
|
+
**Part of:** [9-Act Retail Execution Steel Thread](../../README.md)
|
|
15
|
+
**Depends on:** [Act 1 - Visit Specification](../act1-visit-specification/SKILL.md) (provides `visit_spec_id`, `internal_org_unit_id`, and the `visit_spec_is_new` flag), and the question patterns established in [Act 3](../act3-activity-definition/SKILL.md) / [Act 4](../act4-add-questions/SKILL.md)
|
|
16
|
+
**Enables:** [Act 6 - Assortment-Based Activity](../act6-assortment-based/SKILL.md)
|
|
17
|
+
|
|
18
|
+
**Act 5 exists because the offline app requires a *standard activity* on every visit's Visit Specification.** When Act 1 creates a NEW Visit Spec, nothing else in the steel thread builds a standard activity for it, so the product survey has no baseline KPI questions to render and the Act 9 verification fails. This Act closes that gap.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Goal
|
|
23
|
+
|
|
24
|
+
For a **newly created** Visit Specification, create one **standard activity** — an `AssessmentTaskDefinition` with `IsStandardTask = true` — bound to that Visit Spec, carrying **at least three questions** whose `AssessmentKpi` values cover **Facing**, **PriceSurvey**, and **Distribution**.
|
|
25
|
+
|
|
26
|
+
**Builder's intent:** "A new store-visit type needs a standard activity with the three baseline KPI questions, or the offline product survey has nothing to show and fails. Reused visit types already have theirs — don't touch them."
|
|
27
|
+
|
|
28
|
+
**What you'll create (only when `visit_spec_is_new = true`):**
|
|
29
|
+
1. One standard `AssessmentTaskDefinition` (`IsStandardTask = true`), built from a user-named standard template, bound to the Act 1 Visit Spec, and **time-scoped to the same `ValidFrom`/`ValidTo` window as the Act 3 activity**.
|
|
30
|
+
2. Three (or more) `AssessmentTaskIndDefinition` links attaching KPI questions (Facing, PriceSurvey, Distribution) to that standard activity.
|
|
31
|
+
|
|
32
|
+
> **This Act is automatic.** The orchestrator fires it on Act 1's `visit_spec_is_new = true` signal — the user never asks for the standard activity to be created. The only user inputs are the standard template **name** and (if creating fresh questions) the KPI question details.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Gate: is the Visit Specification new?
|
|
37
|
+
|
|
38
|
+
**This Act is conditional. Read `visit_spec_is_new` from the Act 1 session state before doing anything.**
|
|
39
|
+
|
|
40
|
+
- **`visit_spec_is_new = false` (spec was reused):** Do NOT create a standard activity. Tell the user, in plain language: "The Visit Specification was reused, so its standard activity is assumed to already exist — skipping Act 5." Mark `act5_complete = true` (skipped) and hand off to Act 6.
|
|
41
|
+
- **`visit_spec_is_new = true` (spec was created in Act 1):** Proceed. Tell the user: "This is a **new Visit Spec**, so we need to create a new **standard activity** (`IsStandardTask = true`) with the three baseline KPI questions (Facing, PriceSurvey, Distribution) — otherwise the product survey verification in Act 9 will fail."
|
|
42
|
+
|
|
43
|
+
> `IsStandardTask = true` is the **only** structural difference between this standard activity and the non-standard activity created in Act 3. Everything else about the ATD create call is the same.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## When to use
|
|
48
|
+
|
|
49
|
+
**This Act is orchestrator-triggered, not user-requested.** It runs **automatically** the moment Act 1 reports a newly created Visit Specification (`visit_spec_is_new = true`) — the user does not (and should not) ask for the standard activity to be created. It is skipped **automatically** when Act 1 reused an existing spec.
|
|
50
|
+
|
|
51
|
+
**No trigger phrase is required** — the automatic gate is the `visit_spec_is_new = true` signal from Act 1. (If a user *does* volunteer "the product survey has no questions / is failing", run this same Act — but do not wait for such a prompt.)
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Prerequisites
|
|
56
|
+
|
|
57
|
+
Before running this Act, verify — **in this order, and STOP on the first that fails**:
|
|
58
|
+
|
|
59
|
+
- **`visit_spec_is_new = true`.** If it is `false`, apply the skip path above and do not continue.
|
|
60
|
+
- **`visit_spec_id` and `internal_org_unit_id`** are known from Act 1, and **`valid_from` / `valid_to`** are known from Act 3 (the standard activity binds to the Visit Spec + IOU and reuses Act 3's validity window, exactly like the Act 3 activity).
|
|
61
|
+
- **A standard Assessment Task Definition Template exists** — an `AsmtTskDefTmpl` with `IsStandardTask = true`. **This Act does NOT create one.** You will ask the user for its **name** and resolve it to an `Id` (see Step 2). If the org has none, STOP and report that a standard template must be created first (via Act 2's template step with `IsStandardTask = true`, or by an admin) before Act 5 can run.
|
|
62
|
+
- **Object permissions** for `AssessmentTaskDefinition` (Create), `AssessmentIndicatorDefinition` (Create — only if creating new questions), and `AssessmentTaskIndDefinition` (Create).
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Inputs
|
|
67
|
+
|
|
68
|
+
| Variable | Description | Source | Example |
|
|
69
|
+
|---|---|---|---|
|
|
70
|
+
| `ORG_ALIAS` | Target org alias for `sf` CLI commands | Auth session | `re-org` |
|
|
71
|
+
| `VISIT_SPEC_ID` | The Visit Spec created in Act 1 | Act 1 session state | `0gOxx0000000001EAA` |
|
|
72
|
+
| `INTERNAL_ORG_UNIT_ID` | IOU used across the thread | Act 1 session state | `0gJxx0000000001EAA` |
|
|
73
|
+
| `VALID_FROM` / `VALID_TO` | Validity window — **reuse the Act 3 activity's window** | Act 3 session state | `2026-03-01` / `2026-03-14` |
|
|
74
|
+
| `STANDARD_ATDT_NAME` | Name of an existing standard template (`AsmtTskDefTmpl`, `IsStandardTask = true`) | **User-supplied (Step 2)** | `Standard Store Template` |
|
|
75
|
+
| `STANDARD_ATDT_ID` | Id resolved from `STANDARD_ATDT_NAME` | **Query result (Step 2)** | `0pTxx0000000001EAA` |
|
|
76
|
+
|
|
77
|
+
### Key concepts (reference before executing)
|
|
78
|
+
|
|
79
|
+
**Standard activity (`AssessmentTaskDefinition`, `IsStandardTask = true`)** — the baseline activity the offline app resolves for a visit *through its Visit Specification*. In this workflow it is **time-scoped to the same `ValidFrom`/`ValidTo` window as the Act 3 activity** (reuse Act 3's dates). `IsStandardTask = true` is the only structural difference from the Act 3 (non-standard) activity.
|
|
80
|
+
|
|
81
|
+
**`AssessmentKpi` (on `AssessmentIndicatorDefinition`)** — the KPI classification of a question. The offline product survey requires coverage of all three picklist values **`Facing`**, **`PriceSurvey`**, and **`Distribution`**. This is the field that makes a question count toward the standard-activity requirement. (When creating questions, also set `AssessmentContext = StoreInStore`.)
|
|
82
|
+
|
|
83
|
+
**Questions do NOT auto-flow from the template.** Just like Act 4, linking a template's indicator (`AsmtTaskDefTemplateIndDef`) does not put the question on the activity. You must create an `AssessmentTaskIndDefinition` link per question directly against the standard ATD.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Step-by-step procedure
|
|
88
|
+
|
|
89
|
+
### Step 1: Confirm the gate
|
|
90
|
+
|
|
91
|
+
Re-check `visit_spec_is_new`. If `false`, apply the skip path and stop. Otherwise announce the plan (create a standard activity with the 3 KPI questions) and continue.
|
|
92
|
+
|
|
93
|
+
### Step 2: Ask the user for the standard template by NAME, then resolve its Id
|
|
94
|
+
|
|
95
|
+
Ask the user for the **name** of an existing **standard** Assessment Task Definition Template (`AsmtTskDefTmpl`, `IsStandardTask = true`) — **ask by name, not by Id.** Then resolve that name to an `Id` yourself:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
sf data query \
|
|
99
|
+
--query "SELECT Id, Name, IsStandardTask, IsActive, InternalOrganizationUnitId FROM AsmtTskDefTmpl WHERE Name = '<STANDARD_ATDT_NAME>' AND IsStandardTask = true AND InternalOrganizationUnitId = '<INTERNAL_ORG_UNIT_ID>'" \
|
|
100
|
+
--target-org <org-alias>
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
- **Exactly one row** → capture its `Id` as `STANDARD_ATDT_ID` and continue.
|
|
104
|
+
- **More than one row** → the name is ambiguous; show the user the matches and have them pick, then capture that `Id`.
|
|
105
|
+
- **Zero rows** → no standard template by that name for this IOU. Offer to list the available standard templates so the user can give the right name:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
sf data query \
|
|
109
|
+
--query "SELECT Id, Name, IsActive FROM AsmtTskDefTmpl WHERE IsStandardTask = true AND InternalOrganizationUnitId = '<INTERNAL_ORG_UNIT_ID>' ORDER BY CreatedDate DESC" \
|
|
110
|
+
--target-org <org-alias>
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
- If the list has entries, ask the user for the correct **name** and re-resolve.
|
|
114
|
+
- **If there are no standard templates at all**, STOP and report: **"No standard Assessment Task Definition Template (`IsStandardTask = true`) exists for this Internal Organization Unit. Create one first (Act 2's template step with `IsStandardTask = true`), then re-run Act 5."** Do NOT create the template here.
|
|
115
|
+
|
|
116
|
+
### Step 3: Create the standard activity (AssessmentTaskDefinition, IsStandardTask = true)
|
|
117
|
+
|
|
118
|
+
This mirrors the Act 3 activity-create call, with `IsStandardTask = true` and the standard template:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
sf data create record \
|
|
122
|
+
--sobject AssessmentTaskDefinition \
|
|
123
|
+
--values "Name='Standard Store Activity' IsActive=true Description='Standard activity carrying the baseline KPI questions for every visit on this Visit Spec' AsmtTskDefTmplId=<STANDARD_ATDT_ID> IsStandardTask=true ShouldIncludeAssortments=true VisitSpecId=<VISIT_SPEC_ID> TaskType=ConductInStoreSurveys InternalOrganizationUnitId=<INTERNAL_ORG_UNIT_ID>" \
|
|
124
|
+
--target-org <org-alias>
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**Field notes:**
|
|
128
|
+
- `IsStandardTask = true` — **the defining field.** This is the sole structural difference from the Act 3 (non-standard) activity.
|
|
129
|
+
- `ShouldIncludeAssortments = true` — enable the **Assortment flag** on the standard activity so it picks up the visit's assortment. This is a Boolean on `AssessmentTaskDefinition`.
|
|
130
|
+
- `AsmtTskDefTmplId` — the `STANDARD_ATDT_ID` from Step 2.
|
|
131
|
+
- `VisitSpecId` — **must be the Act 1 `VISIT_SPEC_ID`.** The offline app resolves the standard activity through the visit's Visit Spec, so this binding is what makes the activity apply to the new spec's visits.
|
|
132
|
+
- `InternalOrganizationUnitId` — must match the Act 1 IOU (and the IOU of every question linked in Step 5).
|
|
133
|
+
- `Description` — required by a validation rule (same as Act 3).
|
|
134
|
+
- `TaskType` — a valid picklist value (e.g. `ConductInStoreSurveys`).
|
|
135
|
+
|
|
136
|
+
Capture the returned `Id` as `STANDARD_ACTIVITY_ID`.
|
|
137
|
+
|
|
138
|
+
### Step 4: Choose the KPI questions — copy from the template or create new
|
|
139
|
+
|
|
140
|
+
You need three questions covering `AssessmentKpi` = **Facing**, **PriceSurvey**, **Distribution**. Offer the user two paths (exactly as Act 3 / Act 4 handle questions):
|
|
141
|
+
|
|
142
|
+
**Path A — copy the questions from the standard template.** Read the template's indicator links, then reuse those `AssessmentIndicatorDefinition` records:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
sf data query \
|
|
146
|
+
--query "SELECT AssessmentIndDefId, AssessmentIndDef.Name, AssessmentIndDef.AssessmentKpi FROM AsmtTaskDefTemplateIndDef WHERE AsmtTskDefTmplId = '<STANDARD_ATDT_ID>'" \
|
|
147
|
+
--target-org <org-alias>
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Collect the `AssessmentIndDefId` values and their `AssessmentKpi`. These AIDs are re-linked to the standard activity in Step 5 (linking a template's question does NOT flow it to the activity — you must link explicitly).
|
|
151
|
+
|
|
152
|
+
**Path B — create new KPI questions.** Create one `AssessmentIndicatorDefinition` per missing KPI, setting `AssessmentKpi` explicitly:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
sf data create record \
|
|
156
|
+
--sobject AssessmentIndicatorDefinition \
|
|
157
|
+
--values "Name='Facings count' DataType=Number Description='Number of product facings on shelf' AssessmentKpi=Facing AssessmentContext=StoreInStore InternalOrganizationUnitId=<INTERNAL_ORG_UNIT_ID> IsActive=true" \
|
|
158
|
+
--target-org <org-alias>
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Repeat for `AssessmentKpi=PriceSurvey` and `AssessmentKpi=Distribution`. Field reminders (from Act 2 / Act 4): `Description` is required by a validation rule; `DataType` is immutable after create and its valid values are `Number|Boolean|Percentage|DateTime|String|Decimal|Picklist|Multi-Select Picklist` (use `String`, not "Text"); `AssessmentContext` must be `StoreInStore`; each AID's `InternalOrganizationUnitId` **must match** the standard activity's IOU.
|
|
162
|
+
|
|
163
|
+
### Step 5: Link each question to the standard activity
|
|
164
|
+
|
|
165
|
+
For each chosen AID, create an `AssessmentTaskIndDefinition` link against the standard activity (one per question), exactly as Act 4 does:
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
sf data create record \
|
|
169
|
+
--sobject AssessmentTaskIndDefinition \
|
|
170
|
+
--values "AssessmentTaskDefinitionId=<STANDARD_ACTIVITY_ID> AssessmentIndDefinitionId=<AID_ID> DisplayOrder=1 IsMandatory=true" \
|
|
171
|
+
--target-org <org-alias>
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Field notes:**
|
|
175
|
+
- `DisplayOrder` is 1-indexed; increment per question (1, 2, 3).
|
|
176
|
+
- Every linked AID's IOU must equal the standard activity's IOU, or the link returns `FIELD_CUSTOM_VALIDATION_EXCEPTION` ("Select an Assessment Indicator Definition with an Internal Organization Unit that matches the Assessment Task Definition's Internal Organization Unit").
|
|
177
|
+
|
|
178
|
+
### Step 6: Enforce KPI coverage (Facing, PriceSurvey, Distribution)
|
|
179
|
+
|
|
180
|
+
Confirm the standard activity now has questions covering **all three** required KPIs:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
sf data query \
|
|
184
|
+
--query "SELECT AssessmentIndDefinitionId, AssessmentIndDefinition.Name, AssessmentIndDefinition.AssessmentKpi FROM AssessmentTaskIndDefinition WHERE AssessmentTaskDefinitionId = '<STANDARD_ACTIVITY_ID>'" \
|
|
185
|
+
--target-org <org-alias>
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
- **If all three `AssessmentKpi` values (Facing, PriceSurvey, Distribution) are present**, the standard activity is complete — continue.
|
|
189
|
+
- **If any KPI is missing**, do NOT mark the Act done. Tell the user which KPI(s) are missing and loop back to Step 4 (Path A or B) to create/link the missing question(s). The offline product survey requires all three; an incomplete set still fails Act 9.
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Validation
|
|
194
|
+
|
|
195
|
+
**Expect, after Step 6:**
|
|
196
|
+
- One `AssessmentTaskDefinition` with `IsStandardTask = true`, `VisitSpecId = <Act 1 spec>`, and the Act 1 IOU. ✅
|
|
197
|
+
- At least three `AssessmentTaskIndDefinition` links whose AIDs' `AssessmentKpi` values cover Facing, PriceSurvey, and Distribution. ✅
|
|
198
|
+
|
|
199
|
+
### Success Criteria
|
|
200
|
+
- ✓ A standard activity (`IsStandardTask = true`) exists on the new Visit Spec.
|
|
201
|
+
- ✓ The Assortment flag is enabled (`ShouldIncludeAssortments = true`).
|
|
202
|
+
- ✓ Facing, PriceSurvey, and Distribution KPI questions are all linked to it.
|
|
203
|
+
- ✓ Every linked AID shares the activity's IOU.
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## End state
|
|
208
|
+
|
|
209
|
+
After completing Act 5 (create path):
|
|
210
|
+
- ✅ The newly created Visit Spec has a **standard activity** carrying the three baseline KPI questions, so the Act 9 product-survey verification can succeed.
|
|
211
|
+
|
|
212
|
+
After the skip path (reused spec):
|
|
213
|
+
- ✅ No standard activity was created; the existing spec's standard activity is assumed present.
|
|
214
|
+
|
|
215
|
+
**You are NOT done with the full setup** — this is Act 5 of 9. Proceed to Act 6 (Assortment-Based Activity).
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## Gotchas and common errors
|
|
220
|
+
|
|
221
|
+
### 1. Using `IsStandard` instead of `IsStandardTask`
|
|
222
|
+
There is no `IsStandard` field on `AssessmentTaskDefinition` or `AsmtTskDefTmpl`. The field that marks a template/activity as standard is **`IsStandardTask`** (Boolean). Set `IsStandardTask = true` on the activity (and use a template whose `IsStandardTask = true`).
|
|
223
|
+
|
|
224
|
+
### 2. Product survey still fails after Act 5
|
|
225
|
+
Most often a missing KPI. The offline app requires **all three** of Facing, PriceSurvey, and Distribution. Re-run the Step 6 coverage query — if only two KPIs are linked, add the third. Also confirm `VisitSpecId` on the standard activity matches the visit's Visit Spec exactly.
|
|
226
|
+
|
|
227
|
+
### 3. Copying template questions doesn't attach them
|
|
228
|
+
`AsmtTaskDefTemplateIndDef` links live on the *template*, not the activity. You must create an `AssessmentTaskIndDefinition` per question against the standard activity (Step 5). "Copy" here means reuse the AID `Id`s, then link them explicitly.
|
|
229
|
+
|
|
230
|
+
### 4. IOU mismatch on the question link
|
|
231
|
+
If an AID's IOU differs from the standard activity's IOU, the `AssessmentTaskIndDefinition` create fails with `FIELD_CUSTOM_VALIDATION_EXCEPTION`. Create/choose KPI questions on the same IOU as the Act 1 Visit Spec.
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## Session state to track & handoff
|
|
236
|
+
|
|
237
|
+
> **Internal only — never print this to the user.** Track silently; when the Act finishes, give a short plain-language confirmation (e.g., "✅ Act 5 done — standard activity with Facing/PriceSurvey/Distribution is ready" or "✅ Act 5 skipped — Visit Spec was reused").
|
|
238
|
+
|
|
239
|
+
Maintain after Act 5:
|
|
240
|
+
- `standard_activity_id` — `Id` of the created standard `AssessmentTaskDefinition` (unset on the skip path).
|
|
241
|
+
- `standard_atdt_id` — the standard template `Id` used.
|
|
242
|
+
- `standard_kpi_questions` — the AID ids/KPIs linked (Facing, PriceSurvey, Distribution).
|
|
243
|
+
- `act5_complete` — boolean; `true` after Step 6 passes, or `true` (skipped) when `visit_spec_is_new = false`.
|
|
244
|
+
|
|
245
|
+
**Do NOT block Act 6 on the create path when the spec was reused** — the skip path completes Act 5 immediately.
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## Out of scope / deferred (for this Act)
|
|
250
|
+
|
|
251
|
+
- **Creating the standard template** — Act 5 asks for an existing standard `AsmtTskDefTmpl`; it does not create one.
|
|
252
|
+
- **Account scoping** — happens in Act 7. The standard activity attaches to visits via the Visit Spec, not via per-account scoping here.
|
|
253
|
+
- **Visit planning / generation** — Act 8.
|
|
254
|
+
- **Product-survey verification** — Act 9 (which this Act unblocks).
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## Next Act
|
|
259
|
+
|
|
260
|
+
Proceed to **Act 6: Assortment-Based Activity** (`../act6-assortment-based/SKILL.md`).
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## References
|
|
265
|
+
|
|
266
|
+
- **Act 1 (Visit Specification)** — source of `visit_spec_id` and the `visit_spec_is_new` flag that gates this Act.
|
|
267
|
+
- **Act 3 (Activity Definition)** — the non-standard activity create pattern this Act mirrors (with `IsStandardTask = true`).
|
|
268
|
+
- **Act 4 (Add Questions)** — the `AssessmentTaskIndDefinition` question-linking pattern this Act reuses.
|
|
269
|
+
- **Act 9 (Verification)** — the product-survey beat that requires this standard activity.
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: consumer-goods-visit-activity-act6-assortment-configure
|
|
3
|
+
description: "Act 6 of 9: Enables assortment-based product surveying so merchandisers see only the products listed for each store at survey time. Configures ShouldIncludeAssortments on the Assessment Task Definition (from Act 3) and verifies that sample stores have assortments that will resolve at runtime. Product-level questions (from Act 4) instantiate once per listed product per store. Depends on Act 3 (activity) and Act 4 (product-level questions). Part of the 9-Act Retail Execution steel thread."
|
|
4
|
+
metadata:
|
|
5
|
+
version: "1.0"
|
|
6
|
+
cliTools:
|
|
7
|
+
- tool:
|
|
8
|
+
- "sf"
|
|
9
|
+
semver: ">=2.0.0"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Act 6: Make the Activity Assortment-Based
|
|
13
|
+
|
|
14
|
+
**Part of:** [9-Act Retail Execution Steel Thread](../../README.md)
|
|
15
|
+
**Depends on:** [Act 3 - Activity Definition](../act3-activity-definition/SKILL.md), [Act 4 - Add Questions](../act4-add-questions/SKILL.md)
|
|
16
|
+
**Enables:** [Act 7 - Account Scoping](../act7-account-scoping/SKILL.md)
|
|
17
|
+
|
|
18
|
+
**Act 6 makes product-level questions dynamic and store-specific. You MUST complete Act 3 (activity exists) and Act 4 (at least one product-level question is linked) before starting this act — assortment mode only matters when product-level questions are present.**
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Goal
|
|
23
|
+
|
|
24
|
+
Enable dynamic, store-specific product surveying by linking the activity to each store's assortment. When merchandisers open a visit, product-level questions (e.g., "Facings Count") instantiate **once per listed product for that specific store** — no manual per-store product list required.
|
|
25
|
+
|
|
26
|
+
**Builder's intent:** "Don't make me attach 50 products by hand — show each merchandiser only the products actually listed for the store they're visiting."
|
|
27
|
+
|
|
28
|
+
**What you'll create:**
|
|
29
|
+
1. `ShouldIncludeAssortments = true` on the Assessment Task Definition (from Act 3)
|
|
30
|
+
2. A verification that at least one sample store has a resolvable assortment
|
|
31
|
+
|
|
32
|
+
The store→assortment association is established by a **batch process ahead of time**, not at activity creation time and not live when the visit opens — this act only flips the setting; a batch job pre-associates each store with its listed products, and that's what determines the product list per store.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## What this Act does
|
|
37
|
+
|
|
38
|
+
This Act bridges the gap between static product lists (which require manual maintenance per store) and dynamic store-specific surveys. By enabling `ShouldIncludeAssortments`, the activity becomes aware of each store's current product mix through the Trade Org hierarchy resolution system. It performs THREE operations:
|
|
39
|
+
|
|
40
|
+
1. **Enables `ShouldIncludeAssortments`** on the Assessment Task Definition via PATCH (idempotent if Act 3 already set it `true`).
|
|
41
|
+
2. **Verifies the setting** by reading back the ATD via GET.
|
|
42
|
+
3. **Confirms assortment resolution** for a sample store (read-only) — so you catch the silent "zero products" failure before declaring success.
|
|
43
|
+
|
|
44
|
+
**Business scenario:** A field merchandiser visits Store 001. The activity includes a "Facings Count" question. Without assortments, you'd need to manually attach 50 products to the activity definition. With assortments enabled, the system:
|
|
45
|
+
1. Queries the active assortments
|
|
46
|
+
2. Instantiates the facings question once per listed product (12 products for Store 001, 18 for Store 002, etc.)
|
|
47
|
+
3. Merchandiser sees a dynamic survey with only the products relevant to the store they're visiting
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## When to use
|
|
52
|
+
|
|
53
|
+
**Invoke this skill when:**
|
|
54
|
+
- You've completed Act 3 (activity) and Act 4 (questions, including at least one product-level question)
|
|
55
|
+
- Product-level questions should repeat per store-specific product rather than a hand-maintained list
|
|
56
|
+
- The user asks about "assortment-based activity", "store-specific products", "consider listing", or "dynamic product survey"
|
|
57
|
+
|
|
58
|
+
**Trigger phrases:**
|
|
59
|
+
- "Make the activity assortment-based"
|
|
60
|
+
- "Enable dynamic product surveying"
|
|
61
|
+
- "Act 6" or "assortments"
|
|
62
|
+
|
|
63
|
+
**Skip this Act when:**
|
|
64
|
+
- The activity has no product-level questions (assortment mode has nothing to act on)
|
|
65
|
+
- You genuinely want a static, hand-attached product list (a different flow, not part of the 9-Act thread)
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Prerequisites
|
|
70
|
+
|
|
71
|
+
| Act | Artifact | Required For |
|
|
72
|
+
|-----|----------|--------------|
|
|
73
|
+
| Act 3 | Assessment Task Definition (ATD) | The `Id` to PATCH (`0Z4xx00000000o1CAA` in examples) |
|
|
74
|
+
| Act 4 | Product-level question linked | Assortment mode only surveys product-level questions (e.g., Facings Count) |
|
|
75
|
+
|
|
76
|
+
**Object permissions** — the running user needs Read + Edit on `AssessmentTaskDefinition` and field-level Write on `ShouldIncludeAssortments`:
|
|
77
|
+
```sql
|
|
78
|
+
SELECT Parent.Name, SobjectType, PermissionsRead, PermissionsEdit
|
|
79
|
+
FROM ObjectPermissions
|
|
80
|
+
WHERE SobjectType = 'AssessmentTaskDefinition'
|
|
81
|
+
AND PermissionsEdit = true
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**Assortments must already exist** — this Act **assumes** assortments exist at the Trade Org hierarchy level for target stores. Creating assortments is NOT part of this Act; it's upstream data management. **If no assortment resolves for a store, the survey will show zero products — a silent failure, not an API error.**
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Inputs
|
|
89
|
+
|
|
90
|
+
| Variable | Description | Source | Example |
|
|
91
|
+
|---|---|---|---|
|
|
92
|
+
| `ORG_ALIAS` | Target org alias for `sf` CLI commands | Auth session | `my-re-org` |
|
|
93
|
+
| `ACTIVITY_ID` | Assessment Task Definition to make assortment-based | Act 3 | `0Z4xx00000000o1CAA` |
|
|
94
|
+
| `SAMPLE_STORE_ID` | A representative store/RetailStore to verify assortment resolution | Master data | `001xx000000ABCD` |
|
|
95
|
+
|
|
96
|
+
### Key Concepts (reference before executing)
|
|
97
|
+
|
|
98
|
+
**Assortment-based surveying** — the activity draws each store's product list from a store→assortment association that a batch process establishes ahead of time, instead of carrying a static product list. Critical points:
|
|
99
|
+
|
|
100
|
+
- **ShouldIncludeAssortments** — the single field that turns on assortment mode. Boolean on the Assessment Task Definition. May already be `true` from Act 3; the PATCH is idempotent.
|
|
101
|
+
- **Association is pre-computed by a batch process, not resolved live** — a batch job associates each store with the products listed for it ahead of time. When the merchandiser opens the visit, that association already exists.
|
|
102
|
+
- **Product-level vs visit-level questions** — only questions with `AssessmentContext: "Product"` (from Act 4) repeat per listed product; visit-level questions ("Display Up?") still ask once.
|
|
103
|
+
- **Silent zero-products failure** — if no assortment resolves for a store, the activity works with no error, but the merchandiser sees zero products. Always run the sample-store verification.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Step-by-step procedure
|
|
108
|
+
|
|
109
|
+
### Step 1: Enable ShouldIncludeAssortments
|
|
110
|
+
|
|
111
|
+
Update the Assessment Task Definition to enable assortment-based mode:
|
|
112
|
+
|
|
113
|
+
```http
|
|
114
|
+
PATCH /services/data/v68.0/sobjects/AssessmentTaskDefinition/0Z4xx00000000o1CAA
|
|
115
|
+
Content-Type: application/json
|
|
116
|
+
|
|
117
|
+
{
|
|
118
|
+
"ShouldIncludeAssortments": true
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**Note:** If the field was already set to `true` during Act 3 creation, this PATCH is idempotent. If it was `false` or `null`, this updates it.
|
|
123
|
+
|
|
124
|
+
**Response:**
|
|
125
|
+
- `204 No Content` → success
|
|
126
|
+
- `400 Bad Request` → field validation failure (e.g., invalid object ID)
|
|
127
|
+
- `404 Not Found` → Assessment Task Definition doesn't exist
|
|
128
|
+
|
|
129
|
+
### Step 2: Verify the Setting
|
|
130
|
+
|
|
131
|
+
Read back the Assessment Task Definition to confirm the change — query by the `ACTIVITY_ID` carried from Act 3 (never by name):
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
sf data query \
|
|
135
|
+
--query "SELECT Id, Name, ShouldIncludeAssortments, IsActive FROM AssessmentTaskDefinition WHERE Id = '$ACTIVITY_ID'" \
|
|
136
|
+
--target-org <org-alias>
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**Expected response:**
|
|
140
|
+
```json
|
|
141
|
+
{
|
|
142
|
+
"totalSize": 1,
|
|
143
|
+
"records": [
|
|
144
|
+
{
|
|
145
|
+
"Id": "0Z4xx00000000o1CAA",
|
|
146
|
+
"Name": "Promo Compliance Check",
|
|
147
|
+
"ShouldIncludeAssortments": true,
|
|
148
|
+
"IsActive": true
|
|
149
|
+
}
|
|
150
|
+
]
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
If `ShouldIncludeAssortments` is `false` or `null` after the PATCH, investigate:
|
|
155
|
+
- Field-level security may block the update (check user's permission set)
|
|
156
|
+
- Validation rule on the object may reject the change
|
|
157
|
+
- Org configuration may have custom requirements
|
|
158
|
+
|
|
159
|
+
### Runtime Behavior (Not Part of This Act's API Calls)
|
|
160
|
+
|
|
161
|
+
Understanding what happens at survey time helps verify this Act worked correctly:
|
|
162
|
+
|
|
163
|
+
**The association is pre-computed by a batch process — not resolved live when the visit opens.** A batch job walks the Trade Org hierarchy and **already associates** each store with the products listed for it, ahead of time. By the time a merchandiser opens the visit, the store's product list is a settled association, not a lookup that runs on demand.
|
|
164
|
+
|
|
165
|
+
**When merchandiser opens the visit:**
|
|
166
|
+
1. **Association already in place** — the batch process has already linked the store to the active products listed for it.
|
|
167
|
+
2. **Question instantiation** — for each product-level question in the activity definition, one instance is created per already-associated product.
|
|
168
|
+
3. **Survey rendering** — merchandiser sees:
|
|
169
|
+
- "Facings Count" for Product A
|
|
170
|
+
- "Facings Count" for Product B
|
|
171
|
+
- ...one instance per listed product
|
|
172
|
+
|
|
173
|
+
**Key point:** The store→assortment association is established by a **batch process ahead of time**, not resolved dynamically at visit open. This Act only enables the setting (`ShouldIncludeAssortments = true`); the batch association and the listed products are what actually drive which products appear.
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
### Success Criteria
|
|
178
|
+
|
|
179
|
+
- ✓ PATCH request returned `204 No Content`
|
|
180
|
+
- ✓ Read-back query shows `"ShouldIncludeAssortments": true`
|
|
181
|
+
- ✓ Activity still shows `IsActive: true` (no validation rules broke the update)
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## End state
|
|
185
|
+
|
|
186
|
+
After completing Act 6:
|
|
187
|
+
|
|
188
|
+
- ✅ **`ShouldIncludeAssortments = true`** on the Assessment Task Definition.
|
|
189
|
+
- ✅ **Setting verified** via GET request.
|
|
190
|
+
- ✅ **Activity is now product-aware and store-specific** — product-level questions expand per store using the batch-computed store→assortment association.
|
|
191
|
+
|
|
192
|
+
**At this point:**
|
|
193
|
+
- Act 6 flips the assortment setting only — no products are attached to the activity directly.
|
|
194
|
+
- No accounts are scoped yet — Act 7 (optional) limits which stores get the activity.
|
|
195
|
+
- No visits exist yet — those are planned in Act 8.
|
|
196
|
+
|
|
197
|
+
**You are NOT done with the full setup** — this is Act 6 of 9. Proceed to Act 7 (Account Scoping).
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## Gotchas and common errors
|
|
202
|
+
|
|
203
|
+
### 1. Field-Level Security May Block the Update
|
|
204
|
+
**Problem:** If the running user doesn't have Edit permission on `AssessmentTaskDefinition.ShouldIncludeAssortments`, the PATCH returns `400 Bad Request` or `403 Forbidden`.
|
|
205
|
+
**Fix:** Grant the user a permission set with `Edit` on Assessment Task Definition and field-level access to `ShouldIncludeAssortments`.
|
|
206
|
+
|
|
207
|
+
## Notes: best practices & architecture
|
|
208
|
+
|
|
209
|
+
**The product list comes from a pre-computed association, not the activity.** The activity carries no product list; it carries an intent (`ShouldIncludeAssortments = true`). A batch process associates each store with its listed products ahead of time, and the visit draws on that association. This is what makes one activity definition serve stores with wildly different product mixes.
|
|
210
|
+
|
|
211
|
+
**API reference:**
|
|
212
|
+
|
|
213
|
+
*Update Assessment Task Definition* — `PATCH /services/data/v68.0/sobjects/AssessmentTaskDefinition/{id}` with `{ "ShouldIncludeAssortments": true }`. Auth: OAuth 2.0 Bearer token with `api` scope. Requires Read + Edit on `AssessmentTaskDefinition` and field-level Write on `ShouldIncludeAssortments`.
|
|
214
|
+
|
|
215
|
+
*Read Assessment Task Definition* — `GET /services/data/v68.0/sobjects/AssessmentTaskDefinition/{id}`. Response shape:
|
|
216
|
+
```json
|
|
217
|
+
{
|
|
218
|
+
"attributes": {
|
|
219
|
+
"type": "AssessmentTaskDefinition",
|
|
220
|
+
"url": "/services/data/v68.0/sobjects/AssessmentTaskDefinition/0Z4xx00000000o1CAA"
|
|
221
|
+
},
|
|
222
|
+
"Id": "0Z4xx00000000o1CAA",
|
|
223
|
+
"Name": "Promo Compliance Check",
|
|
224
|
+
"ShouldIncludeAssortments": true,
|
|
225
|
+
"Status": "Active",
|
|
226
|
+
"ActiveFrom": "2026-07-01",
|
|
227
|
+
"ActiveTo": "2026-12-31"
|
|
228
|
+
}
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
**Where assortment mode sits in the lifecycle:**
|
|
232
|
+
|
|
233
|
+
```text
|
|
234
|
+
Activity (AssessmentTaskDefinition) ← Act 3: the concrete activity
|
|
235
|
+
Questions-on-activity (ATID) ← Act 4: product-level + visit-level questions
|
|
236
|
+
↓ (ShouldIncludeAssortments = true)
|
|
237
|
+
Assortment-based activity ← Act 6 (this act): product questions expand per store
|
|
238
|
+
↓ (store→assortment association batch-computed ahead of time)
|
|
239
|
+
Account scoping (Act 7) → Visits (Act 8) → Verification (Act 9)
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## Session state to track & handoff
|
|
245
|
+
|
|
246
|
+
> **Internal only — never print this to the user.** These variables (including `act6_complete`) are orchestration bookkeeping. Track them silently to drive the gate below; do **not** echo raw variable names, IDs, or the gate flag into the conversation. When the Act finishes, tell the user only a short plain-language confirmation (e.g., "✅ Act 6 done — assortment-based product surveys are enabled").
|
|
247
|
+
|
|
248
|
+
Pass these forward to Act 7:
|
|
249
|
+
|
|
250
|
+
- `activity_id` — the `AssessmentTaskDefinition` Id with `ShouldIncludeAssortments = true` (carried from Act 3).
|
|
251
|
+
- `assortment_verified` — boolean; whether Step 3 confirmed at least one sample store resolves products.
|
|
252
|
+
- `act6_complete` — boolean; set to `true` after the Validation checks pass.
|
|
253
|
+
|
|
254
|
+
**Do NOT proceed to Act 7 until `act6_complete = true`.**
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## Next Act
|
|
259
|
+
|
|
260
|
+
Proceed to **Act 7: Account Scoping** (`../act7-account-scoping/SKILL.md`), which defines which stores (Accounts) are eligible for this activity by creating Account–Assessment Task Definition junction records (`AsmtTskDefAcct`). Act 7 is optional — skip it if the activity applies org-wide. Downstream: Act 8 (Plan Visits & Attach), Act 9 (Verification).
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## References
|
|
265
|
+
|
|
266
|
+
- **Act 3:** [Activity Definition](../act3-activity-definition/SKILL.md) ← Prerequisite (provides the activity Id)
|
|
267
|
+
- **Act 4:** [Add Questions](../act4-add-questions/SKILL.md) ← Prerequisite (product-level questions to survey)
|
|
268
|
+
- **Act 7:** [Account Scoping](../act7-account-scoping/SKILL.md) ← Next step
|
|
269
|
+
- **9-Act Steel Thread README:** [../../README.md](../../README.md) ← Full flow
|
|
270
|
+
- **Retail Execution Data Model** — Trade Org hierarchy and assortment resolution (internal documentation)
|
|
271
|
+
- **Core Successor Mapping (M2C)** — managed-to-core field mapping guide ("Consider Listing" → `ShouldIncludeAssortments`)
|