@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,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: communications-revenue-cloud-settings-configure
|
|
3
|
+
description: "Use this skill when users want to manage Revenue Cloud for Communications (Industries Communications Sales) org preferences. Trigger when users mention revenue, cloudfor, communications, settings, revenue cloudfor communications settings."
|
|
4
|
+
metadata:
|
|
5
|
+
version: "1.0"
|
|
6
|
+
accessCheck: "(OrgPermissions.CMEMultiRecipient && UserPermissions.CMESales) || (OrgPermissions.MultiRecipient || OrgPermissions.CMEMultiRecipient)"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Managing Revenue Cloudfor Communications Settings
|
|
10
|
+
|
|
11
|
+
## When to Use This Skill
|
|
12
|
+
|
|
13
|
+
Manage Revenue Cloud for Communications (Industries Communications Sales) org preferences. Read returns Map<String,Boolean> with keys multiLocationEnabled / multiSubscriberEnabled, reflecting OrgPreferences.MultiLocationFeatureOrgPref and OrgPreferences.MultiSubscriberFeatureOrgPref. Two write operations flip those preferences independently. Access guarded by multi-recipient feature access (read + multi-location write) or userCanUseCMEFeatures (multi-subscriber write); admin caller needs Customize Application + the relevant org permission (MultiRecipient/CMEMultiRecipient/CMESales). No Connect/Tooling/Metadata alternative exists.
|
|
14
|
+
|
|
15
|
+
## Critical Constraints
|
|
16
|
+
|
|
17
|
+
**Preconditions:**
|
|
18
|
+
|
|
19
|
+
- Caller user must have Customize Application permission (admin permission required to edit org preferences via the UDD `editAccess`). (check: `Customize Application permission`)
|
|
20
|
+
- Org must have OrgPermissions.MultiRecipient or OrgPermissions.CMEMultiRecipient enabled — required for the read and Multi-Location write (UDD orgAccess) and gating for multi-recipient feature access. (check: `OrgPermissions.MultiRecipient || OrgPermissions.CMEMultiRecipient`)
|
|
21
|
+
- For Multi-Subscriber write only: org must have OrgPermissions.CMEMultiRecipient AND user must have UserPermissions.CMESales — gates Communications Media Enterprise features access access guard on setMultiSubscriberEnabled. (check: `OrgPermissions.CMEMultiRecipient && UserPermissions.CMESales`)
|
|
22
|
+
|
|
23
|
+
## Verification Checklist
|
|
24
|
+
|
|
25
|
+
After every write operation, confirm the effect by re-reading state:
|
|
26
|
+
|
|
27
|
+
- After `write-multi-location-enabled`, `write-multi-subscriber-enabled`: call `verify-comms-org-preferences` (`GET /headless/invoke/industries/industries-communications-sales/get-comms-org-preferences`)
|
|
28
|
+
|
|
29
|
+
## Operations Reference
|
|
30
|
+
|
|
31
|
+
Operations grouped by purpose. Use these as the building blocks for the workflows above.
|
|
32
|
+
|
|
33
|
+
### Summary
|
|
34
|
+
|
|
35
|
+
| Operation | Purpose | Status | Call | Depends on |
|
|
36
|
+
|-----------|---------|--------|------|------------|
|
|
37
|
+
| `getCommsOrgPreferences_1` | read | implemented | `GET /headless/invoke/industries/industries-communications-sales/get-comms-org-preferences` | — |
|
|
38
|
+
| `write-multi-location-enabled` | write | implemented | `PATCH /headless/invoke/industries/industries-communications-sales/set-multi-location-enabled` | — |
|
|
39
|
+
| `write-multi-subscriber-enabled` | write | implemented | `PATCH /headless/invoke/industries/industries-communications-sales/set-multi-subscriber-enabled` | — |
|
|
40
|
+
| `verify-comms-org-preferences` | verify | implemented | `GET /headless/invoke/industries/industries-communications-sales/get-comms-org-preferences` | `write-multi-location-enabled`, `write-multi-subscriber-enabled` |
|
|
41
|
+
|
|
42
|
+
### Read operations
|
|
43
|
+
|
|
44
|
+
#### `getCommsOrgPreferences_1`
|
|
45
|
+
|
|
46
|
+
Read the two Industries Communications Sales OrgPreferences. Returns Map<String,Boolean> with keys multiLocationEnabled (OrgPreferences.MultiLocationFeatureOrgPref) and multiSubscriberEnabled (OrgPreferences.MultiSubscriberFeatureOrgPref). Caller must satisfy multi-recipient feature access.
|
|
47
|
+
|
|
48
|
+
**Call:** `GET /headless/invoke/industries/industries-communications-sales/get-comms-org-preferences` — status: `implemented`
|
|
49
|
+
|
|
50
|
+
**Output:** Map<String,Boolean> with two keys: multiLocationEnabled (mirrors OrgPreferences.MultiLocationFeatureOrgPref) and multiSubscriberEnabled (mirrors OrgPreferences.MultiSubscriberFeatureOrgPref).
|
|
51
|
+
|
|
52
|
+
### Write operations
|
|
53
|
+
|
|
54
|
+
#### `write-multi-location-enabled`
|
|
55
|
+
|
|
56
|
+
Set OrgPreferences.MultiLocationFeatureOrgPref to enable or disable Location-based quoting and ordering. Body: {value: boolean}. Returns true on success. Access guarded by multi-recipient feature access; requires OrgPermissions.MultiRecipient || OrgPermissions.CMEMultiRecipient + Customize Application permission.
|
|
57
|
+
|
|
58
|
+
**Call:** `PATCH /headless/invoke/industries/industries-communications-sales/set-multi-location-enabled` — status: `implemented`
|
|
59
|
+
|
|
60
|
+
#### `write-multi-subscriber-enabled`
|
|
61
|
+
|
|
62
|
+
Set OrgPreferences.MultiSubscriberFeatureOrgPref to enable or disable Subscriber-based quoting and ordering. Body: {value: boolean}. Returns true on success. Access guarded by Communications Media Enterprise features access (the broader CME entitlement, distinct from the multi-recipient guard on read/multi-location-write); requires OrgPermissions.CMEMultiRecipient + UserPermissions.CMESales + Customize Application permission.
|
|
63
|
+
|
|
64
|
+
**Call:** `PATCH /headless/invoke/industries/industries-communications-sales/set-multi-subscriber-enabled` — status: `implemented`
|
|
65
|
+
|
|
66
|
+
### Verify operations
|
|
67
|
+
|
|
68
|
+
#### `verify-comms-org-preferences`
|
|
69
|
+
|
|
70
|
+
Re-read getCommsOrgPreferences after write-multi-location-enabled and/or write-multi-subscriber-enabled. The returned multiLocationEnabled / multiSubscriberEnabled values reflect the just-written OrgPreferences and confirm the writes took effect.
|
|
71
|
+
|
|
72
|
+
**Call:** `GET /headless/invoke/industries/industries-communications-sales/get-comms-org-preferences` — status: `implemented`
|
|
73
|
+
|
|
74
|
+
**Depends on:** `write-multi-location-enabled`, `write-multi-subscriber-enabled`
|
|
@@ -0,0 +1,413 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: communications-smb-fiber-catalog-create
|
|
3
|
+
description: "Load the Communications Cloud SMB Fiber sample product catalog into a Salesforce org that has completed comms-cloud-initial-setup. Trigger when users mention \"load the SMB Fiber sample catalog\", \"set up SMB Fiber products for a demo/POC\", or \"give me a populated Comms Cloud org to explore\". Lands ~163 sObjects (6 AttributePicklists + 19 AttributePicklistValues, 5 AttributeCategories, 8 AttributeDefinitions, 8 ProductClassifications + 8 ProductClassificationAttrs, 4 bundle Product2s + 8 simple Product2s, 28 ProductComponentGroups + 28 ProductRelatedComponents, 1 ProductCatalog + 1 ProductCategory + 4 ProductCategoryProducts, ~23 ProductSellingModelOptions, 12 PricebookEntries) via six `/composite/graph` POSTs. All DeveloperNames and codes are `CCC_*` prefixed. Preconditions: three Comms Cloud permsets on the caller, two ProductSellingModels named `Evergreen - Monthly` and `Broadband Subscription`, active Standard Price Book, and a Bundle→ClassificationComponent ProductRelationshipType."
|
|
4
|
+
metadata:
|
|
5
|
+
version: "1.0"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Communications Cloud — SMB Fiber Sample Catalog
|
|
9
|
+
|
|
10
|
+
Load the fixed SMB Fiber sample product catalog into a Salesforce org
|
|
11
|
+
that has completed `comms-cloud-initial-setup`. Fixed sample dataset:
|
|
12
|
+
product names, prices, and structure are baked in. Intended for demos,
|
|
13
|
+
POCs, and evaluation. The CSV fixtures ship with the skill and are
|
|
14
|
+
consumed as-is; editing them is not supported.
|
|
15
|
+
|
|
16
|
+
Single API: `/services/data/v67.0/composite/graph` (up to 500 sObjects
|
|
17
|
+
per graph, 15 graphs per request, per-graph atomic, back-refs via
|
|
18
|
+
`@{ref.id}`). Six graphs land the full catalog:
|
|
19
|
+
|
|
20
|
+
1. **Graph 1** — 6 AttributePicklists + 19 AttributePicklistValues.
|
|
21
|
+
2. **Graph 2** — 5 AttributeCategories + 8 AttributeDefinitions + 8
|
|
22
|
+
ProductClassifications + 8 ProductClassificationAttrs.
|
|
23
|
+
3. **Graph 3** — 4 bundles + 4 PSMOs (`Evergreen - Monthly`) + 28 PCGs
|
|
24
|
+
+ 28 PRCs + 1 Catalog + 1 Category + 4 PCPs.
|
|
25
|
+
4. **Graph 4a** — 8 simples + 7 PSMOs (`Evergreen - Monthly`;
|
|
26
|
+
Installation ships without a PSMO per the source inventory's
|
|
27
|
+
"Sell only with Other Products" note).
|
|
28
|
+
5. **Graph 4b** — 12 bridge PSMOs (`Broadband Subscription`).
|
|
29
|
+
6. **Graph 4c** — 12 PricebookEntries against Standard Price Book.
|
|
30
|
+
|
|
31
|
+
Graph 4 is split because PricebookEntry validation checks
|
|
32
|
+
`(Product2Id, ProductSellingModelId)` against ProductSellingModelOption
|
|
33
|
+
at insert time, and a same-graph PSMO is not yet visible to that check
|
|
34
|
+
(`FIELD_INTEGRITY_EXCEPTION` otherwise).
|
|
35
|
+
|
|
36
|
+
One-shot. Blind re-run against an already-imported org returns
|
|
37
|
+
`DUPLICATE_VALUE` on Graph 1 and rolls back atomically — safe, no
|
|
38
|
+
partial writes. Runtime is under 60 seconds on a warm org.
|
|
39
|
+
|
|
40
|
+
Naming: the 4 bundle Product2 Names are `Fibre Broadband
|
|
41
|
+
Bronze/Silver/Gold/Platinum`; the 8 simple-product Names are `CPE
|
|
42
|
+
Router`, `CPE Router with WiFi`, `Static IP`, `Installation`, `Instant
|
|
43
|
+
Connect`, `Constant Connect`, `DDos Migration`, `Enhanced Security`
|
|
44
|
+
(verbatim from the source inventory, including the source's spelling
|
|
45
|
+
`DDos Migration`). Catalog Name/Code: `BroadBand Catalog` /
|
|
46
|
+
`CCC_CATALOG_BROADBAND`. Category Name/Code: `Fiber BroadBand` /
|
|
47
|
+
`CCC_CAT_FIBER`.
|
|
48
|
+
|
|
49
|
+
## Workflow
|
|
50
|
+
|
|
51
|
+
── Step 0 — target-org confirmation ──────────────────────────────────
|
|
52
|
+
|
|
53
|
+
0. Read `Organization` and surface identity to the customer before any
|
|
54
|
+
write:
|
|
55
|
+
`SELECT Id, Name, InstanceName, IsSandbox, OrganizationType FROM
|
|
56
|
+
Organization LIMIT 1`.
|
|
57
|
+
Emit:
|
|
58
|
+
```text
|
|
59
|
+
About to load the SMB Fiber sample catalog into:
|
|
60
|
+
Org: <Organization.Name> (<Organization.Id>)
|
|
61
|
+
Instance: <Organization.InstanceName>
|
|
62
|
+
Type: <Organization.OrganizationType> (IsSandbox=<true|false>)
|
|
63
|
+
This will create ~163 sObjects prefixed CCC_*. Confirm to proceed.
|
|
64
|
+
```
|
|
65
|
+
Do NOT proceed without explicit customer confirmation.
|
|
66
|
+
|
|
67
|
+
── Steps 1–4 — precondition probes ────────────────────────────────────
|
|
68
|
+
|
|
69
|
+
1. **Probe `/composite/graph` reachability.**
|
|
70
|
+
`GET /services/data/v67.0/composite/graph` → 405 when reachable.
|
|
71
|
+
A 404 means Composite API is disabled; halt with
|
|
72
|
+
`PRECONDITION_VIOLATION`.
|
|
73
|
+
|
|
74
|
+
2. **Verify Comms Cloud permsets on the caller.** Flat SOQL against
|
|
75
|
+
`PermissionSetAssignment`:
|
|
76
|
+
```text
|
|
77
|
+
SELECT PermissionSet.Name FROM PermissionSetAssignment
|
|
78
|
+
WHERE AssigneeId = <caller-user-id>
|
|
79
|
+
AND PermissionSet.Name IN
|
|
80
|
+
('CMESalesStandardPermissionSet',
|
|
81
|
+
'CommsCloudSalesFeatures',
|
|
82
|
+
'SimpleCsvDataImport')
|
|
83
|
+
```
|
|
84
|
+
Resolve `AssigneeId` from the session context — do NOT probe
|
|
85
|
+
`/services/oauth2/userinfo` (unrouted on some MCP transports).
|
|
86
|
+
Expect 3 rows. Halt with `PRECONDITION_VIOLATION` listing the
|
|
87
|
+
missing permsets by human-readable label:
|
|
88
|
+
```text
|
|
89
|
+
Your user is missing:
|
|
90
|
+
- "Communications Cloud Sales — Standard" (CMESalesStandardPermissionSet)
|
|
91
|
+
- "Communications Cloud Sales Features" (CommsCloudSalesFeatures)
|
|
92
|
+
- "Simple CSV Data Import" (SimpleCsvDataImport)
|
|
93
|
+
Run comms-cloud-initial-setup first (it handles license + permset
|
|
94
|
+
assignment), then re-invoke this skill.
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
3. **Resolve or create every PSM name declared in the CSVs.** Build
|
|
98
|
+
the union of non-blank `PsmName` on `bundles.csv` +
|
|
99
|
+
`simple-products.csv` + every `PricingSellingModelName` on
|
|
100
|
+
`pricebook-entries.csv`. For the shipped templates the set is
|
|
101
|
+
`{"Evergreen - Monthly", "Broadband Subscription"}`. One SOQL:
|
|
102
|
+
```text
|
|
103
|
+
SELECT Id, Name, Status FROM ProductSellingModel
|
|
104
|
+
WHERE Name IN :required_psm_names
|
|
105
|
+
```
|
|
106
|
+
For every required name NOT returned Active, POST it via
|
|
107
|
+
`/sobjects/ProductSellingModel` with a **per-name** create body — each
|
|
108
|
+
PSM needs a distinct `(SellingModelType, PricingTerm, PricingTermUnit)`
|
|
109
|
+
triple (the org enforces uniqueness on that triple):
|
|
110
|
+
```text
|
|
111
|
+
"Evergreen - Monthly":
|
|
112
|
+
{"Name":"Evergreen - Monthly","SellingModelType":"Evergreen",
|
|
113
|
+
"Status":"Active","PricingTerm":1,"PricingTermUnit":"Months"}
|
|
114
|
+
"Broadband Subscription":
|
|
115
|
+
{"Name":"Broadband Subscription","SellingModelType":"TermDefined",
|
|
116
|
+
"Status":"Active","PricingTerm":1,"PricingTermUnit":"Months"}
|
|
117
|
+
```
|
|
118
|
+
`PricingTerm` + `PricingTermUnit` are REQUIRED at create time
|
|
119
|
+
(`INVALID_INPUT` otherwise; term must be `1` when the unit is
|
|
120
|
+
`Months`). If a row exists but `Status != 'Active'`, PATCH it to
|
|
121
|
+
Active. Build `psm_id_by_name` from the merged set of pre-existing +
|
|
122
|
+
freshly-created Ids. Blank `PsmName` on `simple-products.csv` means
|
|
123
|
+
"no PSMO for this product" (Installation per the source inventory) —
|
|
124
|
+
not an error.
|
|
125
|
+
|
|
126
|
+
3.5. **Resolve the Bundle→ClassificationComponent ProductRelationshipType.**
|
|
127
|
+
```text
|
|
128
|
+
SELECT Id FROM ProductRelationshipType
|
|
129
|
+
WHERE MainProductRoleCat='Bundle'
|
|
130
|
+
AND AssociatedProductRoleCat='ClassificationComponent'
|
|
131
|
+
LIMIT 1
|
|
132
|
+
```
|
|
133
|
+
Seeded by RC. Save the Id for PRC emission in Graph 3. Halt if
|
|
134
|
+
absent.
|
|
135
|
+
|
|
136
|
+
4. **Resolve and activate Standard Price Book.**
|
|
137
|
+
`SELECT Id, IsActive FROM Pricebook2 WHERE IsStandard=true LIMIT 1`.
|
|
138
|
+
Save `standard_pricebook_id`. If `IsActive=false`, PATCH:
|
|
139
|
+
`PATCH /services/data/v67.0/sobjects/Pricebook2/<id> {"IsActive": true}`.
|
|
140
|
+
No customer prompt — the skill's job is to leave the org demo-ready.
|
|
141
|
+
|
|
142
|
+
── Steps 6.1–6.5d — the six graph writes ──────────────────────────────
|
|
143
|
+
|
|
144
|
+
6.1. **Graph 1 — Picklists + Values.** Inputs: `picklists.csv` +
|
|
145
|
+
`picklist-values.csv`.
|
|
146
|
+
- 6 AttributePicklist: `{Name, DataType, Status: "Active"}`.
|
|
147
|
+
`DataType` = `Text` for all six.
|
|
148
|
+
`picklists.csv:DeveloperName` is a fixture-level correlation key,
|
|
149
|
+
NOT a Salesforce field — not emitted.
|
|
150
|
+
- 19 AttributePicklistValue: `{Name, PicklistId: @{apl.id}, Code,
|
|
151
|
+
Value, Sequence, Status: "Active"}`. `Code` is the unique key
|
|
152
|
+
(`CCC_PKLVAL_*`, `CCC_PVLVAL_*`, or `CCC_PKVAL_*` per source
|
|
153
|
+
inventory typos, copied verbatim).
|
|
154
|
+
Total 25 sObjects.
|
|
155
|
+
|
|
156
|
+
6.3. **Graph 2 — Categories + Definitions + Classifications + PCAs.**
|
|
157
|
+
Inputs: `attribute-categories.csv` + `attributes.csv` +
|
|
158
|
+
`classifications.csv`.
|
|
159
|
+
- 5 AttributeCategory: `{Name, Code, Description}`.
|
|
160
|
+
- 8 AttributeDefinition: `{Name, Label, DeveloperName, DataType,
|
|
161
|
+
IsActive, Code, Description, DefaultHelpText, [PicklistId]}`.
|
|
162
|
+
Picklist-typed rows resolve `PicklistId` to raw Ids from Graph 1's
|
|
163
|
+
response (cross-graph, not `@{ref.id}`).
|
|
164
|
+
- 8 ProductClassification: `{Name, Code, Status: "Active"}`.
|
|
165
|
+
- 8 ProductClassificationAttr: `{Name, ProductClassificationId,
|
|
166
|
+
AttributeDefinitionId, AttributeCategoryId, Status: "Active"}`.
|
|
167
|
+
`Name` synthesized as `<classification> - <attribute>` (required).
|
|
168
|
+
`AttributeCategoryId` resolved from
|
|
169
|
+
`attributes.csv:AttributeCategoryName`. Sourced by expanding each
|
|
170
|
+
non-blank `classifications.csv:AttributeDeveloperNames` cell (a
|
|
171
|
+
`;`-separated list of `CCC_ATT_*`/`CCC_CPE_*` codes) into one PCA
|
|
172
|
+
per code.
|
|
173
|
+
Total 29 sObjects.
|
|
174
|
+
|
|
175
|
+
6.5a. **Graph 3 — Bundles + Groups + Components + Catalog.** Inputs:
|
|
176
|
+
`bundles.csv` + `component-groups.csv` + `component-wiring.csv` +
|
|
177
|
+
`catalog.csv` + `categories.csv`.
|
|
178
|
+
- 4 Product2 (bundles): `{Name, ProductCode, Family, Type: "Bundle",
|
|
179
|
+
ConfigureDuringSale: "Allowed", IsActive: true, IsAssetizable: true,
|
|
180
|
+
Description, BasedOnId: <PC.id for row.ClassificationDeveloperName
|
|
181
|
+
from Graph 2 state>}`.
|
|
182
|
+
- 4 ProductSellingModelOption: `{Product2Id: @{bundle.id},
|
|
183
|
+
ProductSellingModelId: psm_id_by_name["Evergreen - Monthly"]}`.
|
|
184
|
+
- 28 ProductComponentGroup: `{Name, Code, ParentProductId:
|
|
185
|
+
@{bundle.id}, Sequence, MinBundleComponents, MaxBundleComponents}`.
|
|
186
|
+
CPE groups Min=1/Max=1; every other group Min=0/Max=1.
|
|
187
|
+
- 28 ProductRelatedComponent: `{ParentProductId: @{bundle.id},
|
|
188
|
+
ProductRelationshipTypeId: <PRT Id from Step 3.5>,
|
|
189
|
+
ProductComponentGroupId: @{pcg.id},
|
|
190
|
+
ChildProductClassificationId: <PC.id from Graph 2 state>,
|
|
191
|
+
Quantity: 1, Sequence: <row.Sequence>}`.
|
|
192
|
+
- 1 ProductCatalog: `{Name, Code, Description}`.
|
|
193
|
+
- 1 ProductCategory: `{Name, Code, Description, CatalogId:
|
|
194
|
+
@{catalog.id}}`.
|
|
195
|
+
- 4 ProductCategoryProduct: `{ProductCategoryId: @{category.id},
|
|
196
|
+
ProductId: @{bundle.id}}` — one per bundle code in
|
|
197
|
+
`categories.csv:BundleProductCodes` (`;`-separated).
|
|
198
|
+
Total 70 sObjects.
|
|
199
|
+
|
|
200
|
+
6.5b. **Graph 4a — Simple Products + PSMOs.** Inputs: `simple-products.csv`.
|
|
201
|
+
- 8 Product2 (simples): `{Name, ProductCode, Family, Description,
|
|
202
|
+
IsActive: true, IsAssetizable}`. `Type` omitted (nullable).
|
|
203
|
+
`ConfigureDuringSale` omitted (simples are PRC children, not
|
|
204
|
+
parents). No classification FK — classification is wired via the
|
|
205
|
+
bundle's PRC path.
|
|
206
|
+
- 7 ProductSellingModelOption: `{Product2Id: @{simple.id},
|
|
207
|
+
ProductSellingModelId: psm_id_by_name["Evergreen - Monthly"]}`.
|
|
208
|
+
Installation (blank `PsmName`) emits Product2 but no PSMO.
|
|
209
|
+
Total 15 sObjects.
|
|
210
|
+
|
|
211
|
+
6.5c. **Graph 4b — Broadband Subscription bridge PSMOs.**
|
|
212
|
+
12 ProductSellingModelOption: `{Product2Id: <Product2.Id for
|
|
213
|
+
pbe-row.ProductCode from Graph 3+4a state>, ProductSellingModelId:
|
|
214
|
+
psm_id_by_name["Broadband Subscription"]}`. One per PBE product
|
|
215
|
+
(4 bundles + 8 simples). Required because PricebookEntry validation
|
|
216
|
+
checks `(Product2Id, ProductSellingModelId)` against
|
|
217
|
+
ProductSellingModelOption at insert time.
|
|
218
|
+
|
|
219
|
+
6.5d. **Graph 4c — PricebookEntries.** Inputs: `pricebook-entries.csv`.
|
|
220
|
+
12 PricebookEntry: `{Pricebook2Id: standard_pricebook_id, Product2Id:
|
|
221
|
+
<Product2.Id for row.ProductCode>, UnitPrice, IsActive,
|
|
222
|
+
ProductSellingModelId: psm_id_by_name[row.PricingSellingModelName],
|
|
223
|
+
UseStandardPrice: false}`. All 12 rows name `Broadband Subscription`.
|
|
224
|
+
`CurrencyIsoCode` omitted on single-currency orgs (rejected as
|
|
225
|
+
`INVALID_FIELD` otherwise); re-add on multi-currency orgs.
|
|
226
|
+
|
|
227
|
+
── Step 7 — report ────────────────────────────────────────────────────
|
|
228
|
+
|
|
229
|
+
7. On success, emit:
|
|
230
|
+
```text
|
|
231
|
+
SMB Fiber sample catalog loaded into <Organization.Name>.
|
|
232
|
+
- 4 bundles (Fibre Broadband Bronze/Silver/Gold/Platinum) at
|
|
233
|
+
$30/$40/$50/$60.
|
|
234
|
+
- 8 simple products (CPE Router, CPE Router with WiFi, Static IP,
|
|
235
|
+
Installation, Instant Connect, Constant Connect, DDos Migration,
|
|
236
|
+
Enhanced Security) at published unit prices.
|
|
237
|
+
- 28 component groups + 28 classification-child relationships.
|
|
238
|
+
- Per-PSM PSMO breakdown (Evergreen - Monthly: 11,
|
|
239
|
+
Broadband Subscription: 12).
|
|
240
|
+
- 12 PricebookEntries against Standard Price Book.
|
|
241
|
+
- 1 catalog + 1 category with 4 bundles under the category.
|
|
242
|
+
- 6 attribute picklists + 19 values, 8 attribute definitions,
|
|
243
|
+
5 categories, 8 classifications, 8 classification-attr wirings.
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
On any graph failure, extract the first real error:
|
|
247
|
+
1. Iterate `graphResponse.compositeResponse[]` in order.
|
|
248
|
+
2. Skip entries with `errorCode == "PROCESSING_HALTED"` (cascade
|
|
249
|
+
rollback noise from per-graph atomicity).
|
|
250
|
+
3. First non-halted entry is the root cause.
|
|
251
|
+
|
|
252
|
+
Report:
|
|
253
|
+
```text
|
|
254
|
+
Graph <N> failed and rolled back atomically. Your org is unchanged.
|
|
255
|
+
First error:
|
|
256
|
+
referenceId: <referenceId>
|
|
257
|
+
sObject: <parsed-from-url>
|
|
258
|
+
errorCode: <errorCode>
|
|
259
|
+
message: <message>
|
|
260
|
+
fields: <fields>
|
|
261
|
+
```
|
|
262
|
+
Do NOT retry automatically — per-graph rollback leaves the org
|
|
263
|
+
consistent.
|
|
264
|
+
|
|
265
|
+
## Dispatch contract — `/services/data/v67.0/composite/graph`
|
|
266
|
+
|
|
267
|
+
Every write step (6.1, 6.3, 6.5a, 6.5b, 6.5c, 6.5d) goes through this
|
|
268
|
+
single endpoint.
|
|
269
|
+
|
|
270
|
+
Body shape:
|
|
271
|
+
```json
|
|
272
|
+
{
|
|
273
|
+
"graphs": [
|
|
274
|
+
{
|
|
275
|
+
"graphId": "smb-fiber-g1",
|
|
276
|
+
"compositeRequest": [
|
|
277
|
+
{
|
|
278
|
+
"method": "POST",
|
|
279
|
+
"url": "/services/data/v67.0/sobjects/AttributePicklist",
|
|
280
|
+
"referenceId": "apl_upload",
|
|
281
|
+
"body": {"Name": "Upload Speed Picklist",
|
|
282
|
+
"DataType": "Text",
|
|
283
|
+
"Status": "Active"}
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
"method": "POST",
|
|
287
|
+
"url": "/services/data/v67.0/sobjects/AttributePicklistValue",
|
|
288
|
+
"referenceId": "apv_up40",
|
|
289
|
+
"body": {"Name": "Upload Speed 40",
|
|
290
|
+
"PicklistId": "@{apl_upload.id}",
|
|
291
|
+
"Code": "CCC_PKLVAL_UPLOAD_SPEED_40",
|
|
292
|
+
"Value": "40",
|
|
293
|
+
"Sequence": 10,
|
|
294
|
+
"Status": "Active"}
|
|
295
|
+
}
|
|
296
|
+
]
|
|
297
|
+
}
|
|
298
|
+
]
|
|
299
|
+
}
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
- Up to 500 sObjects per graph, 15 graphs per request. Full SMB Fiber
|
|
303
|
+
payload (25 + 29 + 70 + 15 + 12 + 12 = 163 sObjects) fits well under
|
|
304
|
+
both caps.
|
|
305
|
+
- Per-graph atomicity: any sub-request failure rolls back the entire
|
|
306
|
+
graph; sibling graphs commit independently.
|
|
307
|
+
- Back-refs use `@{referenceId.id}` (lowercase `id`), same graph only.
|
|
308
|
+
Cross-graph FKs resolve via captured Ids from prior graphs' responses.
|
|
309
|
+
- `graphId` must be <40 chars and start with an alphanumeric character.
|
|
310
|
+
|
|
311
|
+
## Why not the Connect API alternatives
|
|
312
|
+
|
|
313
|
+
- `/connect/pcm/actions/catalog-update` is pilot-gated and returns
|
|
314
|
+
`FUNCTIONALITY_NOT_ENABLED` on standard sandboxes.
|
|
315
|
+
- `importCatalogProducts` (RevCloud) is not registered under
|
|
316
|
+
`/actions/standard` on standard sandboxes in v67.0.
|
|
317
|
+
|
|
318
|
+
Everything routes through `/composite/graph` — a single API with broad
|
|
319
|
+
availability.
|
|
320
|
+
|
|
321
|
+
## Critical constraints (wire truth)
|
|
322
|
+
|
|
323
|
+
- **AttributePicklist**: no `DeveloperName`, no `MasterLabel`.
|
|
324
|
+
Uniqueness by `Name`. `DataType` accepts `Boolean|Date|Datetime|
|
|
325
|
+
Number|Text|Currency|Percent` (NOT `Picklist`).
|
|
326
|
+
- **AttributePicklistValue**: unique key is `Code`. Writable fields:
|
|
327
|
+
`Name, PicklistId, Code, Value, Sequence, Status`. `DisplayValue`
|
|
328
|
+
and `Abbreviation` from the source inventory are not sObject fields.
|
|
329
|
+
- **AttributeCategory**: writable fields are `Name, Code, Description`
|
|
330
|
+
only. `Sequence/Status/IsActive/EffectiveStartDate/EffectiveEndDate`
|
|
331
|
+
all rejected.
|
|
332
|
+
- **AttributeDefinition**: help-text field is `DefaultHelpText` (not
|
|
333
|
+
`HelpText`). No `DisplaySequence`, no `AttributeCategoryId` — AD↔AC
|
|
334
|
+
linkage runs through PCA. `Name` uniqueness-enforced. `DataType`
|
|
335
|
+
accepts `Checkbox|Date|Datetime|Number|Text|Currency|Percent|Picklist`
|
|
336
|
+
(NOT `Boolean`).
|
|
337
|
+
- **ProductClassification**: writable fields are `Name, Code, Status,
|
|
338
|
+
ParentProductClassificationId` only. `Description` rejected.
|
|
339
|
+
- **ProductClassificationAttr**: `Name` is REQUIRED. No `DeveloperName`.
|
|
340
|
+
Uniqueness by `(ProductClassificationId, AttributeDefinitionId)`.
|
|
341
|
+
- **Product2**: `Type` picklist has only `Bundle` active (simples omit
|
|
342
|
+
`Type`). No `IsConfigurable`, no `CanUseRevenueSchedule`, no
|
|
343
|
+
`ProductSellingModelId` — PSM linkage runs through
|
|
344
|
+
`ProductSellingModelOption`. Bundles with classification-child PRCs
|
|
345
|
+
MUST carry `ConfigureDuringSale="Allowed"`.
|
|
346
|
+
- **ProductRelatedComponent** with `ChildProductClassificationId`:
|
|
347
|
+
`ProductRelationshipTypeId` REQUIRED; `ProductComponentGroupId`
|
|
348
|
+
REQUIRED and at most ONE classification per PCG;
|
|
349
|
+
`IsComponentRequired` must be false; `IsDefaultComponent` must be
|
|
350
|
+
omitted; `ParentSellingModelId` and `ChildSellingModelId` must be
|
|
351
|
+
omitted. Required-vs-optional is expressed on the PCG via
|
|
352
|
+
`MinBundleComponents`/`MaxBundleComponents`, NOT on the PRC.
|
|
353
|
+
- **ProductComponentGroup**: no `IsActive` field.
|
|
354
|
+
- **ProductCatalog**: no `IsActive`, no `CatalogCode`. Natural key is
|
|
355
|
+
`Code`.
|
|
356
|
+
- **ProductCategory**: no `IsActive`.
|
|
357
|
+
- **ProductCategoryProduct**: no `IsPrimaryCategory`. Emits `{ProductCategoryId,
|
|
358
|
+
ProductId}` only.
|
|
359
|
+
- **ProductSellingModel**: uniqueness is enforced on the
|
|
360
|
+
`(SellingModelType, PricingTerm, PricingTermUnit)` triple, not on
|
|
361
|
+
`Name`. The two catalog PSMs are kept distinct by `SellingModelType`
|
|
362
|
+
(`Evergreen - Monthly` = `Evergreen`, `Broadband Subscription` =
|
|
363
|
+
`TermDefined`).
|
|
364
|
+
- **PricebookEntry**: `ProductSellingModelId` must be a PSM Id
|
|
365
|
+
(`0jP...`), never a PSMO Id (`0iO...`). The matching PSMO for
|
|
366
|
+
`(Product2Id, ProductSellingModelId)` must exist in a PRIOR graph —
|
|
367
|
+
same-graph PSMO is not visible to PBE validation
|
|
368
|
+
(`FIELD_INTEGRITY_EXCEPTION` otherwise). This is why Graph 4 is split
|
|
369
|
+
into 4a → 4b → 4c. `CurrencyIsoCode` rejected on single-currency
|
|
370
|
+
orgs.
|
|
371
|
+
- **Composite Graph DELETE**: does not support dependency ordering.
|
|
372
|
+
Any teardown must be per-Id DELETEs on
|
|
373
|
+
`/sobjects/{sobject}/{id}`.
|
|
374
|
+
|
|
375
|
+
## Fixtures
|
|
376
|
+
|
|
377
|
+
Templates at `assets/templates/`. Every row maps 1:1 to a source
|
|
378
|
+
inventory tab (Picklists / Picklist Values / Attributes / Attribute
|
|
379
|
+
Categories / Product Classification / Products / Product Groups /
|
|
380
|
+
Catalog / Pricebooks). See `assets/README.md` for column semantics.
|
|
381
|
+
|
|
382
|
+
| File | Rows | Feeds |
|
|
383
|
+
|---|---|---|
|
|
384
|
+
| `picklists.csv` | 6 | Graph 1 — AttributePicklist |
|
|
385
|
+
| `picklist-values.csv` | 19 | Graph 1 — AttributePicklistValue |
|
|
386
|
+
| `attribute-categories.csv` | 5 | Graph 2 — AttributeCategory |
|
|
387
|
+
| `attributes.csv` | 8 | Graph 2 — AttributeDefinition |
|
|
388
|
+
| `classifications.csv` | 8 | Graph 2 — ProductClassification + PCA |
|
|
389
|
+
| `bundles.csv` | 4 | Graph 3 — bundle Product2 + PSMO |
|
|
390
|
+
| `simple-products.csv` | 8 | Graph 4a — simple Product2 + PSMO |
|
|
391
|
+
| `component-groups.csv` | 28 | Graph 3 — ProductComponentGroup |
|
|
392
|
+
| `component-wiring.csv` | 28 | Graph 3 — ProductRelatedComponent |
|
|
393
|
+
| `catalog.csv` | 1 | Graph 3 — ProductCatalog |
|
|
394
|
+
| `categories.csv` | 1 | Graph 3 — ProductCategory + PCP |
|
|
395
|
+
| `pricebook-entries.csv` | 12 | Graph 4b + Graph 4c |
|
|
396
|
+
|
|
397
|
+
## Operations reference
|
|
398
|
+
|
|
399
|
+
| Step | Verb + Path | Op | Kind |
|
|
400
|
+
|------|---|---|---|
|
|
401
|
+
| 0 | `GET /services/data/v67.0/query` | Organization identity confirmation | probe |
|
|
402
|
+
| 1 | `GET /services/data/v67.0/composite/graph` | reachability | probe |
|
|
403
|
+
| 2 | `GET /services/data/v67.0/query` | PermissionSetAssignment lookup | read |
|
|
404
|
+
| 3 | `GET /services/data/v67.0/query` + `POST /sobjects/ProductSellingModel` (per missing PSM) | PSM lookup + auto-create missing | read+write |
|
|
405
|
+
| 3.5 | `GET /services/data/v67.0/query` | Bundle→ClassificationComponent PRT lookup | read |
|
|
406
|
+
| 4 | `GET /services/data/v67.0/query` + `PATCH /sobjects/Pricebook2/<id>` (if inactive) | Standard Pricebook lookup + auto-activate | read+write |
|
|
407
|
+
| 6.1 | `POST /services/data/v67.0/composite/graph` | Graph 1 | write |
|
|
408
|
+
| 6.3 | `POST /services/data/v67.0/composite/graph` | Graph 2 | write |
|
|
409
|
+
| 6.5a | `POST /services/data/v67.0/composite/graph` | Graph 3 | write |
|
|
410
|
+
| 6.5b | `POST /services/data/v67.0/composite/graph` | Graph 4a | write |
|
|
411
|
+
| 6.5c | `POST /services/data/v67.0/composite/graph` | Graph 4b | write |
|
|
412
|
+
| 6.5d | `POST /services/data/v67.0/composite/graph` | Graph 4c | write |
|
|
413
|
+
| 7 | (no HTTP) | assemble report | inline |
|