@salesforce/afv-skills 1.65.0 → 1.65.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/skills/field-service-data-capture-form-deployer-configure/SKILL.md +2 -23
- package/skills/field-service-data-capture-form-designer-configure/SKILL.md +3 -13
- package/skills/field-service-mobile-branding-configure/SKILL.md +3 -17
- package/skills/field-service-objective-designer-configure/SKILL.md +379 -72
- package/skills/field-service-prework-brief-deployer-configure/SKILL.md +537 -10
- package/skills/field-service-scheduling-policy-designer-query/SKILL.md +1093 -65
- package/skills/field-service-sobject-create-configure/SKILL.md +213 -13
- package/skills/field-service-voice-to-form-configure/SKILL.md +11 -40
- package/skills/field-service-work-rule-designer-configure/SKILL.md +95 -121
- package/skills/agentforce-gpt-email-generation-configure/SKILL.md +0 -312
- package/skills/agentforce-wizard-ui-forecasting-analytics-components-configure/SKILL.md +0 -64
- package/skills/agentforce-wizard-ui-sales-einstein-components-configure/SKILL.md +0 -46
- package/skills/automation-company-profile-info-query/SKILL.md +0 -51
- package/skills/automation-digital-wallet-configure/SKILL.md +0 -689
- package/skills/automation-flow-coordinate/SKILL.md +0 -95
- package/skills/automation-flow-coordinate/references/elements/action-call/action-call.md +0 -1569
- package/skills/automation-flow-coordinate/references/elements/action-call/conversation-messaging.md +0 -96
- package/skills/automation-flow-coordinate/references/elements/action-call/examples/send-sms-message.json +0 -23
- package/skills/automation-flow-coordinate/references/elements/action-call/examples/send-to-journey-no-fields.json +0 -31
- package/skills/automation-flow-coordinate/references/elements/action-call/send-to-journey.md +0 -179
- package/skills/automation-flow-coordinate/references/elements/exit-rule/examples/event-email-link-click.json +0 -13
- package/skills/automation-flow-coordinate/references/elements/exit-rule/exit-rule.md +0 -83
- package/skills/automation-flow-coordinate/references/elements/forward-to-bot-or-agent/examples/forward-to-bot-or-agent.json +0 -69
- package/skills/automation-flow-coordinate/references/elements/forward-to-bot-or-agent/forward-to-bot-or-agent.md +0 -274
- package/skills/automation-flow-coordinate/references/elements/start/audience-common.md +0 -192
- package/skills/automation-flow-coordinate/references/elements/start/automation-event-triggered.md +0 -130
- package/skills/automation-flow-coordinate/references/elements/start/data-cloud-data-change-triggered.md +0 -92
- package/skills/automation-flow-coordinate/references/elements/start/form-submission-triggered.md +0 -88
- package/skills/automation-flow-coordinate/references/elements/start/segment-triggered.md +0 -152
- package/skills/automation-flow-coordinate/references/elements/start/start.md +0 -539
- package/skills/automation-flow-coordinate/references/elements/subflow/subflow.md +0 -152
- package/skills/automation-flow-coordinate/references/elements/wait/wait.md +0 -497
- package/skills/automation-flow-coordinate/references/recipes/author/author.md +0 -868
- package/skills/automation-flow-coordinate/references/recipes/summarize/element-generic.md +0 -300
- package/skills/automation-flow-coordinate/references/recipes/summarize/reference-resolution.md +0 -292
- package/skills/automation-flow-coordinate/references/recipes/summarize/summarize.md +0 -323
- package/skills/automation-flow-coordinate/references/recipes/testing/examples/debug-output-template.md +0 -109
- package/skills/automation-flow-coordinate/references/recipes/testing/shape.md +0 -219
- package/skills/automation-flow-coordinate/references/recipes/testing/shared-stages/intent-analyzer.md +0 -180
- package/skills/automation-flow-coordinate/references/recipes/testing/workflows/debug.md +0 -175
- package/skills/automation-flow-coordinate/references/recipes/testing/workflows/promote.md +0 -255
- package/skills/automation-flow-coordinate/references/recipes/testing/workflows/save-debug.md +0 -212
- package/skills/automation-flow-coordinate/references/resources/variable/variable.md +0 -171
- package/skills/automation-flow-coordinate/references/shared/anti-patterns.md +0 -786
- package/skills/automation-flow-coordinate/references/shared/end/end.md +0 -267
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/README.md +0 -69
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/predictions.jsonl +0 -80
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/prompts.jsonl +0 -116
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/flow-type-resolver.md +0 -321
- package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/taxonomy.json +0 -320
- package/skills/automation-flow-coordinate/references/shared/server-functions.md +0 -597
- package/skills/automotive-cloud-appraisal-management-settings-configure/SKILL.md +0 -69
- package/skills/automotive-cloud-dealer-essentials-configure/SKILL.md +0 -78
- package/skills/automotive-cloud-ground-agent-data-pipelines-configure/SKILL.md +0 -373
- package/skills/automotive-cloud-ground-mfg-agent-data-pipelines-configure/SKILL.md +0 -273
- package/skills/automotive-cloud-mfg-agent-data-pipelines-configure/SKILL.md +0 -259
- package/skills/automotive-cloud-mfg-sales-concierge-agent-create/SKILL.md +0 -369
- package/skills/automotive-cloud-mfg-sales-concierge-foundation-configure/SKILL.md +0 -542
- package/skills/automotive-cloud-mfg-sales-concierge-foundation-coordinate/SKILL.md +0 -159
- package/skills/automotive-cloud-mfg-sales-concierge-orchestrator-agent-create/SKILL.md +0 -349
- package/skills/automotive-cloud-mfg-sales-concierge-orchestrator-configure/SKILL.md +0 -505
- package/skills/automotive-cloud-sales-concierge-agent-create/SKILL.md +0 -380
- package/skills/automotive-cloud-sales-concierge-foundation-configure/SKILL.md +0 -567
- package/skills/automotive-cloud-sales-concierge-foundation-coordinate/SKILL.md +0 -159
- package/skills/automotive-cloud-sales-concierge-orchestrator-agent-create/SKILL.md +0 -360
- package/skills/automotive-cloud-sales-concierge-orchestrator-configure/SKILL.md +0 -539
- package/skills/automotive-cloud-sales-concierge-search-grounding-configure/SKILL.md +0 -358
- package/skills/commerce-b2b-merchant-quote-configure/SKILL.md +0 -602
- package/skills/commerce-b2b-store-configure/SKILL.md +0 -251
- package/skills/commerce-credit-memo-create/SKILL.md +0 -139
- package/skills/commerce-delivery-business-hours-configure/SKILL.md +0 -277
- package/skills/commerce-delivery-estimation-apply/SKILL.md +0 -155
- package/skills/commerce-delivery-estimation-configure/SKILL.md +0 -377
- package/skills/commerce-delivery-routing-specs-integrate/SKILL.md +0 -174
- package/skills/commerce-estimate-bopis-query/SKILL.md +0 -279
- package/skills/commerce-estimate-delivery-date-query/SKILL.md +0 -349
- package/skills/commerce-fees-apply/SKILL.md +0 -227
- package/skills/commerce-fulfillment-routing-analyze/SKILL.md +0 -200
- package/skills/commerce-guest-buyer-create/SKILL.md +0 -173
- package/skills/commerce-location-bopis-configure/SKILL.md +0 -378
- package/skills/commerce-location-business-hours-configure/SKILL.md +0 -235
- package/skills/commerce-location-delivery-processing-time-configure/SKILL.md +0 -309
- package/skills/commerce-location-graph-integrate/SKILL.md +0 -131
- package/skills/commerce-location-shipping-carrier-method-configure/SKILL.md +0 -755
- package/skills/commerce-location-temporary-operating-hours-configure/SKILL.md +0 -331
- package/skills/commerce-merchant-buyer-groups-configure/SKILL.md +0 -579
- package/skills/commerce-merchant-buyer-user-onboarding-create/SKILL.md +0 -626
- package/skills/commerce-merchant-catalog-configure/SKILL.md +0 -614
- package/skills/commerce-merchant-extension-provider-configure/SKILL.md +0 -368
- package/skills/commerce-merchant-insights-account-health-churn-analyze/SKILL.md +0 -118
- package/skills/commerce-merchant-insights-inventory-returns-analyze/SKILL.md +0 -65
- package/skills/commerce-merchant-insights-order-shopper-get/SKILL.md +0 -90
- package/skills/commerce-merchant-insights-product-performance-analyze/SKILL.md +0 -72
- package/skills/commerce-merchant-insights-query/SKILL.md +0 -279
- package/skills/commerce-merchant-storefront-guest-access-configure/SKILL.md +0 -656
- package/skills/commerce-order-summary-change-apply/SKILL.md +0 -375
- package/skills/commerce-product-details-get/SKILL.md +0 -363
- package/skills/commerce-product-search/SKILL.md +0 -563
- package/skills/commerce-react-storefront-create/SKILL.md +0 -350
- package/skills/commerce-return-order-summary-create/SKILL.md +0 -513
- package/skills/commerce-search-relevance-analyze/SKILL.md +0 -757
- package/skills/commerce-temporary-processing-time-override-create/SKILL.md +0 -274
- package/skills/communications-initial-setup-configure/SKILL.md +0 -630
- package/skills/communications-multisite-configure/SKILL.md +0 -571
- package/skills/communications-revenue-cloud-settings-configure/SKILL.md +0 -74
- package/skills/communications-smb-fiber-catalog-create/SKILL.md +0 -413
- package/skills/communications-tmf-integrate/SKILL.md +0 -1368
- package/skills/consumer-goods-visit-activity-act4-questions-assign/SKILL.md +0 -448
- package/skills/consumer-goods-visit-activity-act5-standard-create/SKILL.md +0 -269
- package/skills/consumer-goods-visit-activity-act6-assortment-configure/SKILL.md +0 -271
- package/skills/consumer-goods-visit-activity-act7-account-scoping-create/SKILL.md +0 -382
- package/skills/consumer-goods-visit-activity-act8-plan-attach-create/SKILL.md +0 -373
- package/skills/consumer-goods-visit-activity-act9-proof-validate/SKILL.md +0 -389
- package/skills/consumer-goods-visit-and-activity-act1-specification-create/SKILL.md +0 -338
- package/skills/consumer-goods-visit-and-activity-act2-template-create/SKILL.md +0 -547
- package/skills/consumer-goods-visit-and-activity-act3-definition-create/SKILL.md +0 -346
- package/skills/consumer-goods-visit-and-activity-configure/SKILL.md +0 -1110
- package/skills/crm-analytics-adoption-insights-configure/SKILL.md +0 -224
- package/skills/crm-analytics-custom-report-type-lightning-configure/SKILL.md +0 -418
- package/skills/crm-analytics-dashboards-configure/SKILL.md +0 -731
- package/skills/crm-analytics-operational-analytics-metadata-bridge-migrate/SKILL.md +0 -233
- package/skills/crm-analytics-report-notifications-ui-configure/SKILL.md +0 -184
- package/skills/crm-analytics-sharing-inheritance-coverage-analyze/SKILL.md +0 -167
- package/skills/crm-analytics-sonic-getting-started-configure/SKILL.md +0 -55
- package/skills/crm-analytics-tableau-next-app-deploy/SKILL.md +0 -1350
- package/skills/crm-analytics-tableau-next-c360-basemodel-validate/SKILL.md +0 -1862
- package/skills/crm-analytics-tableau-next-datacloud-validate/SKILL.md +0 -83
- package/skills/crm-analytics-tableau-next-provisioning-validate/SKILL.md +0 -81
- package/skills/data360-activation-create/SKILL.md +0 -104
- package/skills/data360-activation-external-platform-get/SKILL.md +0 -49
- package/skills/data360-activation-target-create/SKILL.md +0 -93
- package/skills/data360-activation-v2-create/SKILL.md +0 -456
- package/skills/data360-audience-dmo-get/SKILL.md +0 -38
- package/skills/data360-calculated-affinity-create/SKILL.md +0 -82
- package/skills/data360-calculated-insight-create/SKILL.md +0 -148
- package/skills/data360-catalog-metadata-create/SKILL.md +0 -183
- package/skills/data360-code-extension-create/SKILL.md +0 -115
- package/skills/data360-communication-capping-create/SKILL.md +0 -227
- package/skills/data360-connection-create/SKILL.md +0 -491
- package/skills/data360-content-lens-create/SKILL.md +0 -181
- package/skills/data360-data-action-create/SKILL.md +0 -126
- package/skills/data360-data-action-target-create/SKILL.md +0 -181
- package/skills/data360-data-clean-room-create/SKILL.md +0 -238
- package/skills/data360-data-governance-create/SKILL.md +0 -746
- package/skills/data360-data-graph-create/SKILL.md +0 -82
- package/skills/data360-data-harmonized-model-object-reference-create/SKILL.md +0 -38
- package/skills/data360-data-lake-object-create/SKILL.md +0 -207
- package/skills/data360-data-model-object-catalog-get/SKILL.md +0 -49
- package/skills/data360-data-model-object-create/SKILL.md +0 -128
- package/skills/data360-data-model-object-mapping-create/SKILL.md +0 -106
- package/skills/data360-data-space-create/SKILL.md +0 -161
- package/skills/data360-data-streams-create/SKILL.md +0 -324
- package/skills/data360-engagement-signal-get/SKILL.md +0 -38
- package/skills/data360-experiment-create/SKILL.md +0 -82
- package/skills/data360-goal-based-campaign-create/SKILL.md +0 -192
- package/skills/data360-harmonization-process-history-get/SKILL.md +0 -38
- package/skills/data360-harmonized-unstructured-dmo-create/SKILL.md +0 -84
- package/skills/data360-identity-resolution-create/SKILL.md +0 -115
- package/skills/data360-intelligent-document-processing-create/SKILL.md +0 -148
- package/skills/data360-knowledge-graph-construction-create/SKILL.md +0 -93
- package/skills/data360-knowledge-graph-create/SKILL.md +0 -216
- package/skills/data360-knowledge-space-mcp-configure/SKILL.md +0 -475
- package/skills/data360-machine-learning-mcp-configure/SKILL.md +0 -697
- package/skills/data360-multi-org-mcp-configure/SKILL.md +0 -117
- package/skills/data360-secondary-index-mcp-configure/SKILL.md +0 -126
- package/skills/data360-segment-mcp-configure/SKILL.md +0 -159
- package/skills/data360-semantic-calculated-dimension-mcp-configure/SKILL.md +0 -93
- package/skills/data360-semantic-calculated-measurement-mcp-configure/SKILL.md +0 -93
- package/skills/data360-semantic-data-object-mcp-configure/SKILL.md +0 -93
- package/skills/data360-semantic-dimension-mcp-configure/SKILL.md +0 -38
- package/skills/data360-semantic-engine-mcp-configure/SKILL.md +0 -62
- package/skills/data360-semantic-measurement-mcp-configure/SKILL.md +0 -38
- package/skills/data360-semantic-metric-mcp-configure/SKILL.md +0 -93
- package/skills/data360-semantic-model-mcp-configure/SKILL.md +0 -115
- package/skills/data360-standard-mapping-mcp-configure/SKILL.md +0 -38
- package/skills/data360-tenant-lifecycle-mcp-configure/SKILL.md +0 -73
- package/skills/experience-afv-query/SKILL.md +0 -234
- package/skills/experience-agentforce-vibes-in-react-configure/SKILL.md +0 -63
- package/skills/experience-apex-components-configure/SKILL.md +0 -69
- package/skills/experience-apex-pages-configure/SKILL.md +0 -107
- package/skills/experience-app-home-configure/SKILL.md +0 -76
- package/skills/experience-aura-lightning-out-access-configure/SKILL.md +0 -58
- package/skills/experience-briefcase-configure/SKILL.md +0 -287
- package/skills/experience-community-flexi-page-list-create/SKILL.md +0 -74
- package/skills/experience-community-template-definition-list-query/SKILL.md +0 -48
- package/skills/experience-community-theme-definition-list-query/SKILL.md +0 -38
- package/skills/experience-content-assets-configure/SKILL.md +0 -86
- package/skills/experience-custom-domain-create/SKILL.md +0 -727
- package/skills/experience-defer-rendering-workspace-page-setup-configure/SKILL.md +0 -41
- package/skills/experience-field-service-app-builder-configure/SKILL.md +0 -187
- package/skills/experience-flow-category-configure/SKILL.md +0 -117
- package/skills/experience-formula-configure/SKILL.md +0 -358
- package/skills/experience-global-actions-configure/SKILL.md +0 -69
- package/skills/experience-global-publisher-layouts-configure/SKILL.md +0 -79
- package/skills/experience-instrumentation-configure/SKILL.md +0 -64
- package/skills/experience-lex-engagement-configure/SKILL.md +0 -50
- package/skills/experience-lightning-bolt-open/SKILL.md +0 -12
- package/skills/experience-lightning-out-configure/SKILL.md +0 -129
- package/skills/experience-lightning-preview-configure/SKILL.md +0 -67
- package/skills/experience-lightning-types-query/SKILL.md +0 -98
- package/skills/experience-malware-scan-configure/SKILL.md +0 -71
- package/skills/experience-my-salesforce-configure/SKILL.md +0 -126
- package/skills/experience-navigation-menus-configure/SKILL.md +0 -235
- package/skills/experience-notification-types-configure/SKILL.md +0 -206
- package/skills/experience-notifications-configure/SKILL.md +0 -75
- package/skills/experience-record-discovery-query/SKILL.md +0 -227
- package/skills/experience-regenerate-previews-open/SKILL.md +0 -94
- package/skills/experience-sales-cloud-mab-configure/SKILL.md +0 -254
- package/skills/experience-schema-builder-open/SKILL.md +0 -38
- package/skills/experience-simple-record-home-configure/SKILL.md +0 -110
- package/skills/experience-static-resources-configure/SKILL.md +0 -74
- package/skills/field-service-setup-coordinate/SKILL.md +0 -62
- package/skills/field-service-work-plan-configure/SKILL.md +0 -253
- package/skills/fsc-actionable-segmentation-settings-configure/SKILL.md +0 -180
- package/skills/fsc-digital-origination-bre-decision-matrix-foundation-create/SKILL.md +0 -196
- package/skills/fsc-digital-origination-bre-disclosures-consent-configure/SKILL.md +0 -106
- package/skills/fsc-digital-origination-bre-document-upload-configure/SKILL.md +0 -96
- package/skills/fsc-digital-origination-bre-permissions-assign/SKILL.md +0 -111
- package/skills/fsc-digital-origination-bre-setup-coordinate/SKILL.md +0 -250
- package/skills/fsc-digital-origination-bre-stp-eligibility-configure/SKILL.md +0 -122
- package/skills/fsc-digital-origination-coordinate/SKILL.md +0 -653
- package/skills/fsc-digital-origination-demo-run/SKILL.md +0 -225
- package/skills/fsc-digital-origination-execution-guardrails-validate/SKILL.md +0 -112
- package/skills/fsc-digital-origination-initial-setup-configure/SKILL.md +0 -396
- package/skills/fsc-digital-origination-pricing-setup-coordinate/SKILL.md +0 -336
- package/skills/fsc-digital-origination-pricing-setup-data-foundation-create/SKILL.md +0 -208
- package/skills/fsc-digital-origination-pricing-setup-procedure-create/SKILL.md +0 -375
- package/skills/fsc-digital-origination-product-setup-act1-permissions-assign/SKILL.md +0 -83
- package/skills/fsc-digital-origination-product-setup-coordinate/SKILL.md +0 -248
- package/skills/fsc-digital-origination-sample-data-create/SKILL.md +0 -206
- package/skills/fsc-document-checklist-settings-configure/SKILL.md +0 -57
- package/skills/fsc-flexible-hierarchy-configure/SKILL.md +0 -148
- package/skills/fsc-flexible-hierarchy-foundation-configure/SKILL.md +0 -1430
- package/skills/fsc-flexible-hierarchy-graph-config-create/SKILL.md +0 -471
- package/skills/fsc-flexible-hierarchy-rule-based-graph-deploy/SKILL.md +0 -429
- package/skills/fsc-pricing-product-configurator-configure/SKILL.md +0 -150
- package/skills/fsc-pricing-salesforce-omnistudio-switch/SKILL.md +0 -123
- package/skills/fsc-product-act2-catalog-categories-create/SKILL.md +0 -82
- package/skills/fsc-product-act3-attributes-create/SKILL.md +0 -249
- package/skills/fsc-product-act4-classification-assignment-create/SKILL.md +0 -196
- package/skills/fsc-product-act5-considerations-get/SKILL.md +0 -44
- package/skills/fsc-stage-management-apex-flow-deploy/SKILL.md +0 -384
- package/skills/fsc-stage-management-compliant-data-sharing-configure/SKILL.md +0 -144
- package/skills/fsc-stage-management-decision-matrices-create/SKILL.md +0 -107
- package/skills/fsc-stage-management-definition-assignments-create/SKILL.md +0 -189
- package/skills/fsc-stage-management-definition-create/SKILL.md +0 -108
- package/skills/fsc-stage-management-permissions-assign/SKILL.md +0 -143
- package/skills/fsc-stage-management-transitions-configure/SKILL.md +0 -139
- package/skills/health-cloud-appt-booking-config-configure/SKILL.md +0 -135
- package/skills/health-cloud-appt-booking-url-config-configure/SKILL.md +0 -134
- package/skills/health-cloud-care-provider-affl-role-config-configure/SKILL.md +0 -136
- package/skills/health-cloud-care-provider-search-config-configure/SKILL.md +0 -134
- package/skills/health-cloud-care-requests-create/SKILL.md +0 -178
- package/skills/health-cloud-initial-configure/SKILL.md +0 -511
- package/skills/health-cloud-patient-appointment-scheduling-configure/SKILL.md +0 -1374
- package/skills/health-cloud-provider-search-settings-configure/SKILL.md +0 -924
- package/skills/health-cloud-referral-management-coordinate/SKILL.md +0 -513
- package/skills/health-cloud-timeline-configure/SKILL.md +0 -622
- package/skills/health-cloud-virtual-visit-config-configure/SKILL.md +0 -135
- package/skills/industries-account-score-settings-query/SKILL.md +0 -78
- package/skills/industries-actionable-list-data-sources-dmo-configure/SKILL.md +0 -177
- package/skills/industries-ad-product-availability-search/SKILL.md +0 -399
- package/skills/industries-advanced-account-forecast-settings-configure/SKILL.md +0 -628
- package/skills/industries-advanced-therapy-management-settings-configure/SKILL.md +0 -73
- package/skills/industries-atm-settings-starter-configure/SKILL.md +0 -76
- package/skills/industries-batch-document-ai-configure/SKILL.md +0 -196
- package/skills/industries-behavioral-health-app-settings-configure/SKILL.md +0 -71
- package/skills/industries-branch-management-settings-configure/SKILL.md +0 -89
- package/skills/industries-bre-decision-table-access-configure/SKILL.md +0 -367
- package/skills/industries-brokerage-settings-configure/SKILL.md +0 -41
- package/skills/industries-calendar-sync-settings-configure/SKILL.md +0 -89
- package/skills/industries-care-request-settings-configure/SKILL.md +0 -218
- package/skills/industries-case-management-intelligence-settings-configure/SKILL.md +0 -54
- package/skills/industries-catalog-process-attributes-products-configure/SKILL.md +0 -380
- package/skills/industries-catalog-process-fulfillment-configure/SKILL.md +0 -216
- package/skills/industries-catalog-process-intake-configure/SKILL.md +0 -219
- package/skills/industries-catalog-process-knowledge-configure/SKILL.md +0 -153
- package/skills/industries-catalog-process-preprocessor-configure/SKILL.md +0 -168
- package/skills/industries-cds-general-settings-configure/SKILL.md +0 -69
- package/skills/industries-claim-financial-settings-configure/SKILL.md +0 -169
- package/skills/industries-clinical-data-model-settings-configure/SKILL.md +0 -136
- package/skills/industries-clinical-data-model-settings-starter-configure/SKILL.md +0 -105
- package/skills/industries-collection-plan-settings-configure/SKILL.md +0 -132
- package/skills/industries-comms-service-console-settings-configure/SKILL.md +0 -159
- package/skills/industries-compliance-configure/SKILL.md +0 -102
- package/skills/industries-compliance-document-extraction-setup-configure/SKILL.md +0 -76
- package/skills/industries-contact-center-app-layout-configure/SKILL.md +0 -88
- package/skills/industries-contact-center-components-configure/SKILL.md +0 -96
- package/skills/industries-contact-center-path-knowledge-configure/SKILL.md +0 -95
- package/skills/industries-contact-center-user-access-assign/SKILL.md +0 -96
- package/skills/industries-course-waitlist-config-configure/SKILL.md +0 -162
- package/skills/industries-crisis-center-settings-configure/SKILL.md +0 -84
- package/skills/industries-custom-object-settings-configure/SKILL.md +0 -94
- package/skills/industries-data-cloud-integration-configure/SKILL.md +0 -88
- package/skills/industries-data-space-feature-mappings-configure/SKILL.md +0 -245
- package/skills/industries-decision-matrix-builder-configure/SKILL.md +0 -78
- package/skills/industries-decision-table-hbase-configure/SKILL.md +0 -87
- package/skills/industries-decision-table-version-configure/SKILL.md +0 -74
- package/skills/industries-decision-tables-builder-configure/SKILL.md +0 -253
- package/skills/industries-decision-tables-configure/SKILL.md +0 -439
- package/skills/industries-energy-utilities-configure/SKILL.md +0 -251
- package/skills/industries-eu-cloud-multisite-configure/SKILL.md +0 -1008
- package/skills/industries-eu-new-connections-configure/SKILL.md +0 -30
- package/skills/industries-explainability-msg-template-configure/SKILL.md +0 -135
- package/skills/industries-expression-set-message-token-configure/SKILL.md +0 -135
- package/skills/industries-field-service-settings-configure/SKILL.md +0 -82
- package/skills/industries-form-framework-settings-configure/SKILL.md +0 -30
- package/skills/industries-fsc-ai-settings-configure/SKILL.md +0 -57
- package/skills/industries-fsc-association-engine-settings-configure/SKILL.md +0 -172
- package/skills/industries-fsc-b2b-settings-configure/SKILL.md +0 -61
- package/skills/industries-fsc-insurance-settings-configure/SKILL.md +0 -58
- package/skills/industries-fsc-visa-fulfillment-setup-configure/SKILL.md +0 -103
- package/skills/industries-fsc-wealth-agent-settings-configure/SKILL.md +0 -117
- package/skills/industries-fsc-wealth-settings-configure/SKILL.md +0 -99
- package/skills/industries-fundraising-gift-entry-settings-configure/SKILL.md +0 -120
- package/skills/industries-fundraising-rfm-configure/SKILL.md +0 -128
- package/skills/industries-fundraising-settings-configure/SKILL.md +0 -145
- package/skills/industries-fundraising-source-code-gen-configure/SKILL.md +0 -299
- package/skills/industries-google-maps-api-key-settings-configure/SKILL.md +0 -87
- package/skills/industries-grantmaking-intelligence-settings-open/SKILL.md +0 -58
- package/skills/industries-hc-score-category-settings-configure/SKILL.md +0 -167
- package/skills/industries-health-engagement-settings-configure/SKILL.md +0 -218
- package/skills/industries-home-health-agentforce-setup-configure/SKILL.md +0 -131
- package/skills/industries-home-health-bundling-policy-create/SKILL.md +0 -50
- package/skills/industries-home-health-entity-labels-configure/SKILL.md +0 -29
- package/skills/industries-home-health-fsl-package-deploy/SKILL.md +0 -71
- package/skills/industries-home-health-fsl-settings-validate/SKILL.md +0 -27
- package/skills/industries-home-health-guided-setup-care-and-skill-get/SKILL.md +0 -80
- package/skills/industries-home-health-guided-setup-configure/SKILL.md +0 -836
- package/skills/industries-home-health-guided-setup-enable-org-fsl-get/SKILL.md +0 -55
- package/skills/industries-home-health-guided-setup-get-org-ready-get/SKILL.md +0 -61
- package/skills/industries-home-health-licenses-assign/SKILL.md +0 -27
- package/skills/industries-home-health-operating-hours-create/SKILL.md +0 -40
- package/skills/industries-home-health-scheduling-policy-create/SKILL.md +0 -41
- package/skills/industries-home-health-service-objective-create/SKILL.md +0 -22
- package/skills/industries-home-health-skills-create/SKILL.md +0 -31
- package/skills/industries-home-health-users-create/SKILL.md +0 -29
- package/skills/industries-icm-act3-toggles-configure/SKILL.md +0 -198
- package/skills/industries-icm-act5-genai-suggested-assessments-configure/SKILL.md +0 -361
- package/skills/industries-icm-act6-mcg-integration-configure/SKILL.md +0 -550
- package/skills/industries-integrated-care-management-configure/SKILL.md +0 -168
- package/skills/industries-object-enablement-configure/SKILL.md +0 -86
- package/skills/industries-tpm-system-processing-service-configure/SKILL.md +0 -64
- package/skills/integration-apex-settings-configure/SKILL.md +0 -61
- package/skills/marketing-e360-email-archiving-configure/SKILL.md +0 -73
- package/skills/platform-custom-permissions-configure/SKILL.md +0 -687
- package/skills/platform-label-workbench-import-create/SKILL.md +0 -67
- package/skills/platform-privacy-agent-settings-configure/SKILL.md +0 -752
|
@@ -1,267 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: flow-end
|
|
3
|
-
description: "FlowEnd (End node) metadata shape — the explicit terminal node that a terminating branch's connector targets. Covers the ends[] entry fields, WHEN an explicit End is emitted (GENERATE on AUTO_LAYOUT_CANVAS at apiVersion >= 68.0) versus the implicit omit-the-connector end, the never-on-Free-Form exclusion, and the per-branch-or-shared End topology (each terminating branch may have its own End or converge on a shared End — both valid). Load when emitting or reading End nodes in a flow payload. See shared/anti-patterns.md item 38 for why a shared End does not break auto-layout and why a fault pointed directly at an End is silently dropped (advisory, not a defect)."
|
|
4
|
-
metadata:
|
|
5
|
-
version: "1.0"
|
|
6
|
-
related-skills: flow-connector, flow-node, flow-metadata-schema
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# FlowEnd — Explicit End Node
|
|
10
|
-
|
|
11
|
-
An **End** is a terminal node: the node a terminating branch's connector points
|
|
12
|
-
at when the branch stops the flow. End nodes live in the top-level **`ends[]`**
|
|
13
|
-
array of the flow metadata (a sibling of `assignments`, `decisions`, etc. — see
|
|
14
|
-
`shared/flow-metadata-schema.md`). Each entry defines one End.
|
|
15
|
-
|
|
16
|
-
In a `.flow-meta.xml` each End is one `<ends>` element (plural, the same name as
|
|
17
|
-
the JSON key) holding `<name>`, `<locationX>` and `<locationY>`. An `<end>`
|
|
18
|
-
element fails the deploy with `Error parsing file: Element
|
|
19
|
-
{http://soap.sforce.com/2006/04/metadata}end invalid at this location in type Flow`.
|
|
20
|
-
|
|
21
|
-
An End is a `FlowNode` subclass (`FlowEnd` — see `shared/node/node.md`): it takes
|
|
22
|
-
`name`, optional `label`/`description`, `locationX`/`locationY`, and the optional
|
|
23
|
-
`group` back-reference (see [The `group` attribute](#the-group-attribute)). It has
|
|
24
|
-
**no connector of any kind** — nothing flows out of an End.
|
|
25
|
-
|
|
26
|
-
There are **two** ways a branch can terminate in a flow, and which one to use is
|
|
27
|
-
decided entirely by the rule below:
|
|
28
|
-
|
|
29
|
-
- **Explicit End** — an `ends[]` entry, targeted by one or more connectors
|
|
30
|
-
(`"connector": { "targetReference": "END_ELEMENT_1" }`; several non-fault
|
|
31
|
-
connectors may converge on one End — a valid shared End). **Stored in metadata.**
|
|
32
|
-
- **Implicit end** — the branch's last element simply omits its `connector`. The
|
|
33
|
-
End is *not* serialized; the platform infers it.
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## When to emit an explicit End (the deciding rule)
|
|
38
|
-
|
|
39
|
-
> **GENERATE, `AUTO_LAYOUT_CANVAS`, resolved `apiVersion` ≥ 68.0 → emit an
|
|
40
|
-
> explicit End per terminating branch.** This is the default on a 68-capable org.
|
|
41
|
-
> Explicit End nodes became storable metadata in API version 68.0; on such an org
|
|
42
|
-
> the author recipe stores ends in metadata rather than relying on the implicit
|
|
43
|
-
> omit-the-connector form, matching how Flow Builder itself serializes an
|
|
44
|
-
> auto-layout flow.
|
|
45
|
-
|
|
46
|
-
The resolved `apiVersion` is `max(apiVersionsList)` from `GET /services/data/vXX.0/flowbuilder/flow/version-info`
|
|
47
|
-
(currently 68) — see `recipes/author/author.md` Phase 3 step 3 and
|
|
48
|
-
`shared/flow-properties/flow-properties.md` § apiVersion. Emit the implicit end
|
|
49
|
-
(omit the connector) instead in every other case:
|
|
50
|
-
|
|
51
|
-
| Situation | Terminating branch → |
|
|
52
|
-
|---|---|
|
|
53
|
-
| GENERATE, `AUTO_LAYOUT_CANVAS`, `apiVersion` ≥ 68.0 | **explicit End** (`ends[]` entry, one connector into it) |
|
|
54
|
-
| GENERATE, `apiVersion` < 68.0 (org max below 68) | implicit end (omit the connector) — explicit ends are not storable |
|
|
55
|
-
| **Free-Form (`FREE_FORM_CANVAS`, or no `CanvasMode` PMV → opens Free-Form)** | **NEVER emit `ends[]`** — Free-Form flows do not support explicit End nodes. Omit the connector. |
|
|
56
|
-
| EVOLVE (edit of a retrieved flow) | **preserve the source's `ends[]` verbatim**; add explicit Ends only for the terminating branches you introduce, and only if the source is auto-layout (see § EVOLVE) |
|
|
57
|
-
|
|
58
|
-
**The rule is persistence-independent.** It applies to any flow the skill emits at
|
|
59
|
-
v68+ auto-layout — the flow MCP save JSON payload *and* a `.flow-meta.xml` written
|
|
60
|
-
to the project for a metadata deploy. A metadata deploy (e.g. `sf project deploy`)
|
|
61
|
-
stores the flow **verbatim**: it does not synthesize End nodes, so any missing
|
|
62
|
-
`ends[]` stays missing on the org and on the next retrieve. If the skill writes
|
|
63
|
-
metadata XML instead of calling the save endpoint, it must still author the
|
|
64
|
-
`<ends>` elements and point each terminating branch's connector at one.
|
|
65
|
-
|
|
66
|
-
**Free-Form is a hard exclusion.** Never generate `ends[]` for a Free-Form flow,
|
|
67
|
-
and never add an End when rewriting a retrieved Free-Form source. Canvas mode is
|
|
68
|
-
carried by the `CanvasMode` process metadata value; a flow with no `CanvasMode`
|
|
69
|
-
PMV opens Free-Form (see `shared/anti-patterns.md` item 37), so it is treated as
|
|
70
|
-
Free-Form for this rule.
|
|
71
|
-
|
|
72
|
-
**Implicit termination is NOT Free-Form.** Whether `ends[]` is stored has **no
|
|
73
|
-
bearing** on canvas mode — canvas mode is set *only* by the `CanvasMode` PMV.
|
|
74
|
-
Below 68.0 (and any time a branch terminates by omitting its connector), the flow
|
|
75
|
-
is **still `AUTO_LAYOUT_CANVAS`** and still emits the `CanvasMode` PMV; it just
|
|
76
|
-
terminates implicitly instead of storing End nodes. Do **not** reason "no `ends[]`
|
|
77
|
-
⇒ the flow opens in Free-Form" — that is false, and it is never a reason to drop
|
|
78
|
-
the `CanvasMode` PMV or to stop treating the flow as auto-layout. A sub-68
|
|
79
|
-
auto-layout flow with omitted connectors opens in Auto-Layout exactly like a v68+
|
|
80
|
-
one; the only difference is the End nodes are inferred rather than stored.
|
|
81
|
-
|
|
82
|
-
Emitting a dedicated per-branch End under this rule is **not** fabrication — it is
|
|
83
|
-
the v68+ auto-layout GENERATE default. The "never fabricate End elements"
|
|
84
|
-
guidance in `shared/anti-patterns.md` item 38 applies to the cases where an
|
|
85
|
-
explicit End is *not* called for (below 68.0, Free-Form, or EVOLVE preservation),
|
|
86
|
-
not to this default.
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
## `ends[]` entry fields
|
|
91
|
-
|
|
92
|
-
| Field | Type | Required | Notes |
|
|
93
|
-
|---|---|---|---|
|
|
94
|
-
| `name` | string | yes | Unique dev-name; matches `[A-Za-z][A-Za-z0-9_]*`, ≤ 80 chars. Flow Builder names these `END_ELEMENT_1`, `END_ELEMENT_2`, … — follow that convention. Numbers need not be contiguous, but every End's `name` must be **unique** within the flow and is the value the terminating branch's `connector.targetReference` points at. |
|
|
95
|
-
| `label` | string | no | Usually omitted / `null` — Flow Builder does not label End nodes. |
|
|
96
|
-
| `description` | string | no | Usually omitted / `null`. |
|
|
97
|
-
| `locationX` | number | yes | Canvas X. Use `0` for auto-layout flows (see `shared/node/node.md`). |
|
|
98
|
-
| `locationY` | number | yes | Canvas Y. Use `0` for auto-layout flows. |
|
|
99
|
-
| `group` | string | conditional | Present only when the End sits inside a group boundary; omitted otherwise. See [The `group` attribute](#the-group-attribute). |
|
|
100
|
-
|
|
101
|
-
An End entry has **no `connector`, no `faultConnector`, and no other outgoing
|
|
102
|
-
field** — it is a sink. It is reached, never left.
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
## The `group` attribute
|
|
107
|
-
|
|
108
|
-
`group` is the generic FlowNode membership back-reference (`shared/node/node.md`
|
|
109
|
-
§ `group`): the `name` of the group container an element sits inside, present only
|
|
110
|
-
when the element falls within a group boundary and omitted otherwise. An End is a
|
|
111
|
-
FlowNode, so it carries `group` on exactly the same terms as any other element.
|
|
112
|
-
|
|
113
|
-
For a net-new flow this attribute does not arise on its own — the author recipe
|
|
114
|
-
does not generate group containers, so a generated End carries **no** `group`. It
|
|
115
|
-
shows up only when **preserving** a retrieved source (EVOLVE) that already places
|
|
116
|
-
an End inside a group: keep the source's `group` value verbatim, exactly as you
|
|
117
|
-
preserve the rest of the `ends[]` entry. Do not add, remove, or re-derive a
|
|
118
|
-
`group` on an End.
|
|
119
|
-
|
|
120
|
-
```jsonc
|
|
121
|
-
"ends": [
|
|
122
|
-
{ "name": "END_ELEMENT_1", "locationX": 0, "locationY": 0 }, // no group
|
|
123
|
-
{ "name": "END_ELEMENT_2", "group": "Group_1", "locationX": 0, "locationY": 0 } // preserved from source
|
|
124
|
-
]
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
---
|
|
128
|
-
|
|
129
|
-
## Referential integrity — connectors and `ends[]` are co-emitted
|
|
130
|
-
|
|
131
|
-
An explicit End has **two halves that must be emitted together**:
|
|
132
|
-
|
|
133
|
-
1. the terminating element's `connector` (or `defaultConnector` / `nextValueConnector` / `noMoreValuesConnector`) whose `targetReference` is the End's `name`, and
|
|
134
|
-
2. the matching entry in the top-level `ends[]` array with that exact `name`.
|
|
135
|
-
|
|
136
|
-
**Emit both or neither.** If you decide a branch terminates at an explicit End
|
|
137
|
-
(the v68+ auto-layout default), you MUST both point its connector at
|
|
138
|
-
`END_ELEMENT_n` **and** add `{ "name": "END_ELEMENT_n", ... }` to `ends[]`. A
|
|
139
|
-
connector that targets an End with no matching `ends[]` entry fails the save with
|
|
140
|
-
**"`<EndName>` not found"** (e.g. `End_Main not found`) — the same
|
|
141
|
-
lookup-by-dev-name failure as a dangling connector (`shared/anti-patterns.md`
|
|
142
|
-
item 14).
|
|
143
|
-
|
|
144
|
-
**The fix for "`<EndName>` not found" is to ADD the missing `ends[]` entry — never
|
|
145
|
-
to remove the connector.** Removing the connector deletes the terminating branch
|
|
146
|
-
and silently changes the flow's behavior; the branch still needs to end. The
|
|
147
|
-
`ends[]` array is the last thing built (`recipes/author/author.md` Build Order
|
|
148
|
-
step 6), so a wired-but-undefined End is the classic slip — the pre-save check
|
|
149
|
-
(author.md Phase 3 step 4) verifies every End target resolves.
|
|
150
|
-
|
|
151
|
-
The invariant is **bidirectional**: every End-targeting connector resolves to an
|
|
152
|
-
`ends[]` entry with that exact name, and every `ends[]` entry is targeted by at
|
|
153
|
-
least one connector (no orphan Ends, no dangling End references). A shared End —
|
|
154
|
-
one entry targeted by 2+ non-fault connectors — is valid; see § Topology rules.
|
|
155
|
-
|
|
156
|
-
**Do not misdiagnose "`<EndName>` not found" as a version cap.** It is a
|
|
157
|
-
referential-integrity error, never evidence that the org lacks v68 or that ends
|
|
158
|
-
are unsupported. The org's ends support is decided **only** by the verified
|
|
159
|
-
`max(apiVersionsList)` from `GET /services/data/vXX.0/flowbuilder/flow/version-info` (resolved up front — see
|
|
160
|
-
`recipes/author/author.md` Phase 3 step 3), never inferred from a save failure. On
|
|
161
|
-
this error, do NOT lower `apiVersion`, drop `ends[]`, switch the branch to implicit
|
|
162
|
-
termination, or claim the flow "opens in Free-Form" — add the missing `ends[]`
|
|
163
|
-
entry and re-save at the same version.
|
|
164
|
-
|
|
165
|
-
## Topology rules (auto-layout)
|
|
166
|
-
|
|
167
|
-
These match `shared/anti-patterns.md` item 38 — the rule is that in v68 ALC every
|
|
168
|
-
terminating branch reaches an explicit End; how connectors converge is flexible:
|
|
169
|
-
|
|
170
|
-
1. **Every terminating branch reaches an explicit End.** On GENERATE with
|
|
171
|
-
`AUTO_LAYOUT_CANVAS` at resolved `apiVersion` ≥ 68.0, co-emit the connector
|
|
172
|
-
and its matching `ends[]` entry. This includes the easy-to-miss termini: a
|
|
173
|
-
loop `noMoreValuesConnector`, a loop `nextValueConnector` (body) terminus, a
|
|
174
|
-
Decision `defaultConnector` terminus, and any decision rule/outcome terminus.
|
|
175
|
-
2. **A shared End is valid; so is one End per branch.** Two or more **non-fault**
|
|
176
|
-
connectors converging on one `ends[]` entry is a legal, Flow-Builder-native
|
|
177
|
-
auto-layout shape (e.g. a Decision default and another outcome both ending at
|
|
178
|
-
one End). One dedicated End per branch is equally valid. Neither is mandated —
|
|
179
|
-
never "split" a shared End, never flag one as a defect. (Implicit ends can't
|
|
180
|
-
be shared: an omitted connector targets nothing.)
|
|
181
|
-
3. **A `faultConnector` into an End is silently dropped, not fatal.** A fault
|
|
182
|
-
whose direct target is an End — or an empty/unwired fault — is removed on
|
|
183
|
-
reload; the flow stays `AUTO_LAYOUT_CANVAS` and does **not** fall back to
|
|
184
|
-
Free-Form. The only real cost is silent loss of that error path, so when you
|
|
185
|
-
want faults handled, route each to a real handler (a `Log_Error` /
|
|
186
|
-
`Handle_Fault` Assignment, `customErrors`, or an error screen) that reaches
|
|
187
|
-
*its own* End. A fault may also validly terminate at an End through a handler.
|
|
188
|
-
|
|
189
|
-
See `shared/anti-patterns.md` item 38 for the full behavior, and item 34 for the
|
|
190
|
-
orthogonal runtime concern (a fault rejoining a continuation that assumes success).
|
|
191
|
-
Mid-graph convergence on a *continuing* element is legal and never flagged.
|
|
192
|
-
|
|
193
|
-
#### Worked example — a Flow-Builder auto-layout flow with five Ends (`a_new_flow_to_test`)
|
|
194
|
-
|
|
195
|
-
A real `AUTO_LAYOUT_CANVAS` flow at `apiVersion 68.0`, authored and re-opened
|
|
196
|
-
cleanly in Flow Builder, shows every terminating-branch kind reaching an explicit
|
|
197
|
-
End — including a **shared End** and a **fault that reaches an End through a
|
|
198
|
-
handler**:
|
|
199
|
-
|
|
200
|
-
```text
|
|
201
|
-
Get_Cases connector→Copy_1_of_Loop_Cases faultConnector→Action_1 (fault → handler chain)
|
|
202
|
-
Action_1 connector→END_ELEMENT_6 faultConnector→Action_2
|
|
203
|
-
Action_2 connector→END_ELEMENT_7 (fault chain terminates at an End)
|
|
204
|
-
Assignment_3 connector→END_ELEMENT_4 (loop-body terminus via nextValue)
|
|
205
|
-
Decision_2 defaultConnector→END_ELEMENT_2 ┐ shared End: default + Outcome_2
|
|
206
|
-
Outcome_1→END_ELEMENT_5 │ both target END_ELEMENT_2
|
|
207
|
-
Outcome_2→END_ELEMENT_2 ┘
|
|
208
|
-
ends[]: END_ELEMENT_2, _4, _5, _6, _7 (END_ELEMENT_2 targeted twice — a valid shared End)
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
Takeaways: (1) `END_ELEMENT_2` is reached by two non-fault connectors and is
|
|
212
|
-
perfectly valid — do NOT split it. (2) The `Get_Cases`/`Action_1` faults route to
|
|
213
|
-
handler actions that themselves reach Ends; a fault pointed *directly* at an End
|
|
214
|
-
(or left empty) is simply dropped on reload, not a round-trip breaker — directly
|
|
215
|
-
verified by round-tripping a flow whose `faultConnector` targets an `END_ELEMENT`:
|
|
216
|
-
the fault is removed and the flow stays `AUTO_LAYOUT_CANVAS`. (3)
|
|
217
|
-
Each Decision outcome, the loop-body assignment, and each action terminus all reach
|
|
218
|
-
an explicit End — that is the v68 obligation. (The source's `InvalidDraft` status
|
|
219
|
-
came from empty element configs — an empty `Assignment_3` and `operator:None`
|
|
220
|
-
outcomes — not from the End topology.)
|
|
221
|
-
|
|
222
|
-
---
|
|
223
|
-
|
|
224
|
-
## EVOLVE
|
|
225
|
-
|
|
226
|
-
On an edit of a retrieved flow, **preserve the source's `ends[]` verbatim** —
|
|
227
|
-
never inject ends into, remove ends from, or restructure the end topology of an
|
|
228
|
-
edited flow. "Preserve the existing `ends[]`" means keep each inherited End for
|
|
229
|
-
the branch that already single-targets it — it does **not** mean fanning new
|
|
230
|
-
branches or faults into an inherited End. Give each **new** terminating branch
|
|
231
|
-
you add its **own** dedicated End (auto-layout sources only), and route new
|
|
232
|
-
faults to a dedicated handler. Never add ends to a retrieved Free-Form source.
|
|
233
|
-
See `shared/connector/connector.md` § End topology (auto-layout) EVOLVE worked
|
|
234
|
-
example and `shared/anti-patterns.md` item 38 § EVOLVE note.
|
|
235
|
-
|
|
236
|
-
---
|
|
237
|
-
|
|
238
|
-
## JSON structure
|
|
239
|
-
|
|
240
|
-
**Explicit End targeted by a terminating branch (auto-layout, v68+):**
|
|
241
|
-
```jsonc
|
|
242
|
-
// terminating element
|
|
243
|
-
{ "name": "Set_Result", "connector": { "targetReference": "END_ELEMENT_1" } }
|
|
244
|
-
// ...
|
|
245
|
-
"ends": [ { "name": "END_ELEMENT_1", "locationX": 0, "locationY": 0 } ]
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
**Implicit end (< v68, Free-Form, or org max below 68) — no `ends[]` entry:**
|
|
249
|
-
```jsonc
|
|
250
|
-
{ "name": "Set_Result" } // no connector; End is inferred, not serialized
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
See `end/examples/` for runnable fragments.
|
|
254
|
-
|
|
255
|
-
---
|
|
256
|
-
|
|
257
|
-
## See Also
|
|
258
|
-
|
|
259
|
-
- `shared/connector/connector.md` — § End topology (auto-layout): the connector
|
|
260
|
-
side of the same rule, and the EVOLVE worked example.
|
|
261
|
-
- `shared/node/node.md` — `FlowEnd` is a `FlowNode` subclass; the generic `group`
|
|
262
|
-
membership attribute.
|
|
263
|
-
- `shared/anti-patterns.md` item 38 — a shared End is valid (does not break
|
|
264
|
-
auto-layout) and a fault pointed directly at an End is silently dropped on
|
|
265
|
-
reload (advisory, not a defect); item 37 — the `CanvasMode` PMV that decides
|
|
266
|
-
auto-layout vs. Free-Form.
|
|
267
|
-
- `shared/flow-metadata-schema.md` — the top-level `ends[]` array key.
|
package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/README.md
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
# flow-type-resolver — evaluation & validation
|
|
2
|
-
|
|
3
|
-
Two independent checks guard this skill. They answer different questions.
|
|
4
|
-
|
|
5
|
-
## 1. `verify_supported_types.py` — is the supported set *correct*? (org-check)
|
|
6
|
-
|
|
7
|
-
Validates that every tuple in `taxonomy.json`'s authoritative `supportedTuples` set is
|
|
8
|
-
actually a valid flow type in the connected Salesforce org. This is the guarantee that
|
|
9
|
-
Project Codey never claims to support a flow type the platform rejects.
|
|
10
|
-
|
|
11
|
-
**Validity rules** (see `taxonomy.json.supportedTuples.$comment`):
|
|
12
|
-
|
|
13
|
-
- `processType` must be in `GET /flowbuilder/schema/process-types`.
|
|
14
|
-
- A triggered tuple's `triggerType` must be in
|
|
15
|
-
`GET /flowbuilder/schema/trigger-types?processType=<pt>`.
|
|
16
|
-
- A **no-trigger** tuple (no `triggerType`) is valid **by absence** — the org's
|
|
17
|
-
trigger-types list does not contain a `None` entry; a no-trigger flow simply omits the
|
|
18
|
-
trigger. Membership of the `processType` is sufficient.
|
|
19
|
-
- `runInMode`, when declared, must be in `getFlowCapabilities.runInModes`.
|
|
20
|
-
- `recordTriggerType` is **advisory**: `getFlowCapabilities` returns `200` even for an
|
|
21
|
-
invalid `recordTriggerType` (e.g. `RecordBeforeSave` + `Delete`), so the read endpoints do
|
|
22
|
-
not gate it — it is enforced only at save-time. The script only sanity-checks it against
|
|
23
|
-
`enums.recordTriggerType`.
|
|
24
|
-
|
|
25
|
-
**Run it:**
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
# from repo root, so test-agent/.env resolves
|
|
29
|
-
set -a; . test-agent/.env; set +a # exports CORE_ORG_ALIAS
|
|
30
|
-
python3 contributed-skills/flow-agentic-ai/automation-flow-coordinate/references/shared/flow-type-resolver/eval/verify_supported_types.py
|
|
31
|
-
# or: python3 .../eval/verify_supported_types.py --org <alias> --api-version v68.0
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
Exits `0` if every supported tuple is valid; non-zero (listing each violation) otherwise.
|
|
35
|
-
It also prints, per processType, the org-supported triggers the taxonomy **intentionally
|
|
36
|
-
omits** — the supported set is a curated subset, not a mirror of everything the org allows,
|
|
37
|
-
so review that list when you change `supportedTuples`. Requires the `sf` CLI
|
|
38
|
-
(`sf api request rest`) and an authenticated org alias.
|
|
39
|
-
|
|
40
|
-
## 2. `score.py` — does the resolver *classify correctly*? (behavioral eval)
|
|
41
|
-
|
|
42
|
-
Scores the resolver's specCategory predictions (`predictions.jsonl`) against the curated
|
|
43
|
-
fixture (`prompts.jsonl`), normalizing through `taxonomy.json`'s alias map, and gates on
|
|
44
|
-
overall accuracy. See the header of `score.py`.
|
|
45
|
-
|
|
46
|
-
A fixture row can also set `"expectAsk": true|false`. On those rows the prediction's
|
|
47
|
-
`mustAsk` (missing counts as `false`) has to match too, so a prompt the resolver must ask
|
|
48
|
-
about is a miss if it is answered without asking, and the other way round. The `FT-CRM`
|
|
49
|
-
rows use this: a "CRM Triggered Flow" request that says "marketing" resolves with no
|
|
50
|
-
question, and one that does not is asked first.
|
|
51
|
-
|
|
52
|
-
```bash
|
|
53
|
-
python3 contributed-skills/flow-agentic-ai/automation-flow-coordinate/references/shared/flow-type-resolver/eval/score.py --gate 0.95
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
**What this does and does not prove.** `predictions.jsonl` is a **committed snapshot** of the
|
|
57
|
-
resolver's output for each fixture prompt — `score.py` reads it as-is and does **not**
|
|
58
|
-
re-run the resolver. So the gate catches a `taxonomy.json` alias/normalizer break (a
|
|
59
|
-
prediction that no longer maps to a known category) but **not** a live-classification
|
|
60
|
-
regression: if a taxonomy or reasoning-engine change would make the resolver classify a
|
|
61
|
-
prompt differently, that only shows up once you **regenerate `predictions.jsonl`** by
|
|
62
|
-
re-running the resolver over `prompts.jsonl` and re-scoring. Treat a green `score.py` as
|
|
63
|
-
"the committed predictions still normalize and clear the gate," not "the current resolver
|
|
64
|
-
still classifies these correctly."
|
|
65
|
-
|
|
66
|
-
Current score: **79/80 (98.8%)**. The lone miss is `FT-AUTO-003` — a button-invoked, flat
|
|
67
|
-
headless clone process (expected `Autolaunched`) that the resolver reads as `Screen`. It is
|
|
68
|
-
a documented hard case, kept in the fixture as an honest miss rather than hand-corrected in
|
|
69
|
-
`predictions.jsonl`.
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
{"id":"FT-SCRN-001","specCategory":"Screen"}
|
|
2
|
-
{"id":"FT-AUTO-001","specCategory":"Autolaunched"}
|
|
3
|
-
{"id":"FT-RTRIG-001","specCategory":"RecordTriggered"}
|
|
4
|
-
{"id":"FT-SCHED-001","specCategory":"Scheduled"}
|
|
5
|
-
{"id":"FT-PEVT-001","specCategory":"PlatformEvent"}
|
|
6
|
-
{"id":"FT-SEG-001","specCategory":"Segment"}
|
|
7
|
-
{"id":"FT-RTORCH-001","specCategory":"RecordTriggeredOrchestration"}
|
|
8
|
-
{"id":"FT-AUTORCH-002","specCategory":"AutolaunchedOrchestration"}
|
|
9
|
-
{"id":"FT-RTAPPR-004","specCategory":"RecordTriggeredApprovalOrchestration"}
|
|
10
|
-
{"id":"FT-AUTAPPR-004","specCategory":"AutolaunchedApprovalOrchestration"}
|
|
11
|
-
{"id":"FT-SCRN-002","specCategory":"Screen"}
|
|
12
|
-
{"id":"FT-AUTO-002","specCategory":"Autolaunched"}
|
|
13
|
-
{"id":"FT-RTRIG-002","specCategory":"RecordTriggered"}
|
|
14
|
-
{"id":"FT-SCHED-002","specCategory":"Scheduled"}
|
|
15
|
-
{"id":"FT-PEVT-002","specCategory":"PlatformEvent"}
|
|
16
|
-
{"id":"FT-SEG-002","specCategory":"Segment"}
|
|
17
|
-
{"id":"FT-RTORCH-002","specCategory":"RecordTriggeredOrchestration"}
|
|
18
|
-
{"id":"FT-AUTORCH-003","specCategory":"AutolaunchedOrchestration"}
|
|
19
|
-
{"id":"FT-RTAPPR-005","specCategory":"RecordTriggeredApprovalOrchestration"}
|
|
20
|
-
{"id":"FT-AUTAPPR-005","specCategory":"AutolaunchedApprovalOrchestration"}
|
|
21
|
-
{"id":"FT-SCRN-003","specCategory":"Screen"}
|
|
22
|
-
{"id":"FT-AUTO-003","specCategory":"Screen"}
|
|
23
|
-
{"id":"FT-RTRIG-003","specCategory":"RecordTriggered"}
|
|
24
|
-
{"id":"FT-SCHED-003","specCategory":"Scheduled"}
|
|
25
|
-
{"id":"FT-PEVT-003","specCategory":"PlatformEvent"}
|
|
26
|
-
{"id":"FT-SEG-003","specCategory":"Segment"}
|
|
27
|
-
{"id":"FT-RTORCH-003","specCategory":"RecordTriggeredOrchestration"}
|
|
28
|
-
{"id":"FT-AUTORCH-004","specCategory":"AutolaunchedOrchestration"}
|
|
29
|
-
{"id":"FT-RTAPPR-006","specCategory":"RecordTriggeredApprovalOrchestration"}
|
|
30
|
-
{"id":"FT-AUTAPPR-006","specCategory":"AutolaunchedApprovalOrchestration"}
|
|
31
|
-
{"id":"FT-SCRN-004","specCategory":"Screen"}
|
|
32
|
-
{"id":"FT-AUTO-004","specCategory":"Autolaunched"}
|
|
33
|
-
{"id":"FT-RTRIG-004","specCategory":"RecordTriggered"}
|
|
34
|
-
{"id":"FT-SCHED-004","specCategory":"Scheduled"}
|
|
35
|
-
{"id":"FT-PEVT-004","specCategory":"PlatformEvent"}
|
|
36
|
-
{"id":"FT-SEG-004","specCategory":"Segment"}
|
|
37
|
-
{"id":"FT-RTORCH-004","specCategory":"RecordTriggeredOrchestration"}
|
|
38
|
-
{"id":"FT-RTAPPR-001","specCategory":"RecordTriggeredApprovalOrchestration"}
|
|
39
|
-
{"id":"FT-AUTAPPR-001","specCategory":"AutolaunchedApprovalOrchestration"}
|
|
40
|
-
{"id":"FT-SCRN-005","specCategory":"Screen"}
|
|
41
|
-
{"id":"FT-AUTO-005","specCategory":"Autolaunched"}
|
|
42
|
-
{"id":"FT-RTRIG-005","specCategory":"RecordTriggered"}
|
|
43
|
-
{"id":"FT-SCHED-005","specCategory":"Scheduled"}
|
|
44
|
-
{"id":"FT-PEVT-005","specCategory":"PlatformEvent"}
|
|
45
|
-
{"id":"FT-SEG-005","specCategory":"Segment"}
|
|
46
|
-
{"id":"FT-RTORCH-005","specCategory":"RecordTriggeredOrchestration"}
|
|
47
|
-
{"id":"FT-RTAPPR-002","specCategory":"RecordTriggeredApprovalOrchestration"}
|
|
48
|
-
{"id":"FT-AUTAPPR-002","specCategory":"AutolaunchedApprovalOrchestration"}
|
|
49
|
-
{"id":"FT-SCRN-006","specCategory":"Screen"}
|
|
50
|
-
{"id":"FT-AUTO-006","specCategory":"Autolaunched"}
|
|
51
|
-
{"id":"FT-RTRIG-006","specCategory":"RecordTriggered"}
|
|
52
|
-
{"id":"FT-SCHED-006","specCategory":"Scheduled"}
|
|
53
|
-
{"id":"FT-PEVT-006","specCategory":"PlatformEvent"}
|
|
54
|
-
{"id":"FT-SEG-006","specCategory":"Segment"}
|
|
55
|
-
{"id":"FT-AUTORCH-001","specCategory":"AutolaunchedOrchestration"}
|
|
56
|
-
{"id":"FT-RTAPPR-003","specCategory":"RecordTriggeredApprovalOrchestration"}
|
|
57
|
-
{"id":"FT-AUTAPPR-003","specCategory":"AutolaunchedApprovalOrchestration"}
|
|
58
|
-
{"id":"FT-IRR-001","specCategory":"IndivRelatedRecord"}
|
|
59
|
-
{"id":"FT-IRR-002","specCategory":"IndivRelatedRecord"}
|
|
60
|
-
{"id":"FT-IRR-003","specCategory":"RecordTriggered"}
|
|
61
|
-
{"id":"FT-IRR-004","specCategory":"IndivRelatedRecord","mustAsk":false}
|
|
62
|
-
{"id":"FT-IRR-005","specCategory":"RecordTriggered","mustAsk":false}
|
|
63
|
-
{"id":"FT-IRR-006","specCategory":"AutomationEvent"}
|
|
64
|
-
{"id":"FT-FORM-001","specCategory":"FormSubmissionEvent"}
|
|
65
|
-
{"id":"FT-FORM-002","specCategory":"FormSubmissionEvent"}
|
|
66
|
-
{"id":"FT-FORM-003","specCategory":"Screen"}
|
|
67
|
-
{"id":"FT-CRM-001","specCategory":"IndivRelatedRecord","mustAsk":true}
|
|
68
|
-
{"id":"FT-CRM-002","specCategory":"IndivRelatedRecord","mustAsk":true}
|
|
69
|
-
{"id":"FT-CRM-003","specCategory":"IndivRelatedRecord","mustAsk":false}
|
|
70
|
-
{"id":"FT-CRM-004","specCategory":"RecordTriggered","mustAsk":false}
|
|
71
|
-
{"id":"FT-CRM-005","specCategory":"DataCloudDataChange","mustAsk":false}
|
|
72
|
-
{"id":"FT-CRM-006","specCategory":"IndivRelatedRecord","mustAsk":false}
|
|
73
|
-
{"id":"FT-CRM-007","specCategory":"IndivRelatedRecord","mustAsk":true}
|
|
74
|
-
{"id": "FT-OND-001", "specCategory": "OnDemand"}
|
|
75
|
-
{"id": "FT-OND-002", "specCategory": "OnDemand"}
|
|
76
|
-
{"id": "FT-OND-003", "specCategory": "Autolaunched"}
|
|
77
|
-
{"id": "FT-OND-004", "specCategory": "Autolaunched"}
|
|
78
|
-
{"id": "FT-OND-005", "specCategory": "OnDemand"}
|
|
79
|
-
{"id": "FT-OND-006", "specCategory": "OnDemand"}
|
|
80
|
-
{"id": "FT-OND-007", "specCategory": "Autolaunched"}
|
package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/prompts.jsonl
DELETED
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
# Curated flow-type-resolver behavioral eval fixture. One {id,prompt,expected} per line;
|
|
2
|
-
# `#`/`//` lines are skipped by the scorer. `expected` is a canonical
|
|
3
|
-
# taxonomy specCategory.
|
|
4
|
-
#
|
|
5
|
-
# COVERAGE NOTE (project-codey port): this 60-prompt fixture covers the 10 families the
|
|
6
|
-
# source PR shipped plus IndivRelatedRecord (Engagement / Journey-Triggered, family
|
|
7
|
-
# FT-IRR), added for the individual-related-record routing and $Input record-context
|
|
8
|
-
# work. It still has NO prompts for the other four trigger categories added during the
|
|
9
|
-
# project-codey port (AutomationEvent, List, CampaignMember, RecordQuery). Running this
|
|
10
|
-
# fixture validates the covered families did not REGRESS; it does NOT validate those
|
|
11
|
-
# four categories. See CURATION.md.
|
|
12
|
-
#
|
|
13
|
-
# STATUS: OVERALL accuracy gated at 0.95. Source PR scored 98.2% (56/57 on the original
|
|
14
|
-
# families); the lone miss is FT-AUTO-003 (button-invoked flat Autolaunched flow read as
|
|
15
|
-
# Screen), kept as an honest hard case rather than dropped. This fixture adds the FT-IRR
|
|
16
|
-
# family for 60 prompts total, then the FT-FORM family (FormSubmissionEvent, plus a
|
|
17
|
-
# Screen look-alike and an Automation Event-worded prompt that must still resolve to
|
|
18
|
-
# FormSubmissionEvent) for 63, then the FT-CRM family for 70. FT-CRM rows carry
|
|
19
|
-
# "expectAsk": a CRM Triggered Flow ("CRM Triggered" / "CRM Trigger") request that says
|
|
20
|
-
# "marketing" resolves to IndivRelatedRecord with no question; one that does not say
|
|
21
|
-
# "marketing" leans IndivRelatedRecord but must ask (marketing Automation Event or
|
|
22
|
-
# Record-Triggered Flow). Two look-alikes must not route there at all (a plain Contact
|
|
23
|
-
# update with no CRM Triggered name stays RecordTriggered; a Data Cloud DMO change stays
|
|
24
|
-
# DataCloudDataChange). The FT-OND family (OnDemandNoTrigger) brings it to 77: an On-Demand
|
|
25
|
-
# Flow request and an "autolaunched" marketing send that the API starts for one person
|
|
26
|
-
# resolve to OnDemand; an "on-demand flow" that Apex calls with no marketing send, and an
|
|
27
|
-
# autolaunched flow that sends a plain email, stay Autolaunched; an On-Demand Flow named as
|
|
28
|
-
# the type stays OnDemand even with no send. An API-started email "with consent from" a
|
|
29
|
-
# subscription is a marketing send (OnDemand) even though the prompt never says marketing;
|
|
30
|
-
# an API-started Email Alert stays Autolaunched. FT-IRR-004..006 bring it to 80: a user's
|
|
31
|
-
# request word for word, a marketing "automation event flow" that triggers when a Lead's
|
|
32
|
-
# status is Nurturing and sends to a journey, resolves to IndivRelatedRecord with no
|
|
33
|
-
# question; the same Lead change with no marketing action stays RecordTriggered; and a
|
|
34
|
-
# marketing "automation event flow" that starts on an email link click stays AutomationEvent.
|
|
35
|
-
# FT-OND and FT-IRR-004..006 predictions were produced blind by an agent that read only
|
|
36
|
-
# flow-type-resolver.md and taxonomy.json.
|
|
37
|
-
{"id":"FT-SCRN-001","prompt":"Add a button to the Account page that walks a rep through a short form to capture renewal intent — the rep picks a renewal date, selects a reason code, and confirms before the record is updated.","expected":"Screen"}
|
|
38
|
-
{"id":"FT-SCRN-002","prompt":"Build a multi-step wizard that sales reps launch from the Opportunity page to log a verbal commitment: first screen collects close date and amount, second screen lets them attach a note, then it saves everything on finish.","expected":"Screen"}
|
|
39
|
-
{"id":"FT-SCRN-003","prompt":"I need a guided process a service agent can open from a Case to walk through a return request — they enter the product serial number, pick a return reason from a dropdown, and confirm the customer's shipping address before submitting.","expected":"Screen"}
|
|
40
|
-
{"id":"FT-SCRN-004","prompt":"Create a step-by-step data-entry helper that customer success managers open via a custom button on the Contact record to collect NPS survey responses during a call — three screens, one question each, then save the results.","expected":"Screen"}
|
|
41
|
-
{"id":"FT-SCRN-005","prompt":"When a finance team member clicks 'Submit Expense' on an Expense Report record, open a series of screens where they fill in receipt amounts, select a cost center, and upload a photo before the record is marked ready for approval.","expected":"Screen"}
|
|
42
|
-
{"id":"FT-SCRN-006","prompt":"Build a new-lead intake form that inside sales reps pop open from the Leads list view: first screen captures company name and industry, second screen lets the rep assign a campaign source, and the last screen confirms before creating the Lead record.","expected":"Screen"}
|
|
43
|
-
{"id":"FT-AUTO-001","prompt":"I need a reusable piece of logic that calculates a tiered discount percentage based on an Opportunity's annual contract value — my other flows will call it and pass in the amount to get back a discount rate.","expected":"Autolaunched"}
|
|
44
|
-
{"id":"FT-AUTO-002","prompt":"Build a utility that our Apex service class can invoke to create a follow-up Task on any Account, passing in the subject, due date, and owner at runtime.","expected":"Autolaunched"}
|
|
45
|
-
{"id":"FT-AUTO-003","prompt":"When a sales rep clicks a custom button on the Opportunity record, kick off a process that clones the opportunity and all its line items into a new draft record.","expected":"Autolaunched"}
|
|
46
|
-
{"id":"FT-AUTO-004","prompt":"I want a standalone piece of automation that my order management Apex code can call to update the related Contract's status and send a confirmation email whenever a payment is posted.","expected":"Autolaunched"}
|
|
47
|
-
{"id":"FT-AUTO-005","prompt":"Create a reusable block that other flows in our org can invoke as a subflow: given a Contact ID, it looks up the Contact's Account tier and returns the appropriate SLA level.","expected":"Autolaunched"}
|
|
48
|
-
{"id":"FT-AUTO-006","prompt":"Set up a headless routine that our nightly batch Apex job can trigger to archive closed Cases older than 90 days by stamping an Archive_Date__c field and moving them to a cold storage record type.","expected":"Autolaunched"}
|
|
49
|
-
{"id":"FT-RTRIG-001","prompt":"Whenever a new Opportunity is created with an amount over $50,000, automatically assign it to the Enterprise Sales queue and send the account owner an email notification.","expected":"RecordTriggered"}
|
|
50
|
-
{"id":"FT-RTRIG-002","prompt":"Each time a Case status changes to 'Resolved', stamp the current date on a custom Resolved_Date__c field and update the related contact's Last_Support_Date__c.","expected":"RecordTriggered"}
|
|
51
|
-
{"id":"FT-RTRIG-003","prompt":"As soon as a new Lead is saved with a country of 'Germany', set the Lead Owner to the EMEA round-robin queue and mark the region picklist as 'EMEA'.","expected":"RecordTriggered"}
|
|
52
|
-
{"id":"FT-RTRIG-004","prompt":"When an Account's Annual Revenue field is updated to exceed one million dollars, automatically create a follow-up Task for the account owner due in three business days.","expected":"RecordTriggered"}
|
|
53
|
-
{"id":"FT-RTRIG-005","prompt":"Any time a Contract record is deleted, log a custom Audit_Log__c record capturing the contract name, owner, and the timestamp of deletion.","expected":"RecordTriggered"}
|
|
54
|
-
{"id":"FT-RTRIG-006","prompt":"The moment a Work Order is created with Priority set to 'Critical', immediately create a child Work Order Line Item, notify the field service manager via email, and set the target response time to two hours.","expected":"RecordTriggered"}
|
|
55
|
-
{"id":"FT-SCHED-001","prompt":"Every night at midnight, find all Opportunities whose Close Date has passed and Status is still 'Open', then update their Stage to 'Closed Lost'.","expected":"Scheduled"}
|
|
56
|
-
{"id":"FT-SCHED-002","prompt":"Each Monday morning, roll up the total number of won deals from the previous week onto each Account's 'Weekly Wins' field so the sales dashboard stays current.","expected":"Scheduled"}
|
|
57
|
-
{"id":"FT-SCHED-003","prompt":"Run a daily job that scans all Cases open longer than 10 days and bumps their Priority to 'High' if it hasn't been set already.","expected":"Scheduled"}
|
|
58
|
-
{"id":"FT-SCHED-004","prompt":"Once a month, zero out the 'Monthly Call Count' field on every Contact record so reps start each billing cycle with a clean slate.","expected":"Scheduled"}
|
|
59
|
-
{"id":"FT-SCHED-005","prompt":"Every weekday at 7 AM, check which Leads haven't been touched in 30 days and assign them to the round-robin queue for re-engagement.","expected":"Scheduled"}
|
|
60
|
-
{"id":"FT-SCHED-006","prompt":"Set up a nightly batch that looks for any active Contracts whose end date falls within the next 14 days and creates a renewal Opportunity linked to the parent Account.","expected":"Scheduled"}
|
|
61
|
-
{"id":"FT-PEVT-001","prompt":"Whenever our payment processor publishes a Payment_Completed__e message to the event bus, pick it up and automatically update the related Order record's status to 'Paid' and close the linked invoice.","expected":"PlatformEvent"}
|
|
62
|
-
{"id":"FT-PEVT-002","prompt":"Our IoT monitoring platform fires a Device_Alert__e event each time a sensor threshold is breached — subscribe to that event channel and create a high-priority maintenance Case for the affected equipment.","expected":"PlatformEvent"}
|
|
63
|
-
{"id":"FT-PEVT-003","prompt":"When the external ERP pushes a Stock_Depleted__e event into Salesforce, catch it and automatically generate a new Purchase_Order__c record for the product that needs restocking.","expected":"PlatformEvent"}
|
|
64
|
-
{"id":"FT-PEVT-004","prompt":"Listen for Shipment_Dispatched__e events coming from the fulfillment system and, each time one arrives, flip the related Opportunity stage to 'Fulfilled' and fire off a customer confirmation email.","expected":"PlatformEvent"}
|
|
65
|
-
{"id":"FT-PEVT-005","prompt":"Our HR platform emits an Employee_Offboarded__e event when someone leaves; build something that subscribes to that event and deactivates the matching Salesforce user while reassigning their open Cases.","expected":"PlatformEvent"}
|
|
66
|
-
{"id":"FT-PEVT-006","prompt":"Set up automation that waits for a Fraud_Flagged__e event from the risk-scoring service and, as soon as one comes in, creates a follow-up Task on the associated Account for the compliance team to review.","expected":"PlatformEvent"}
|
|
67
|
-
{"id":"FT-SEG-001","prompt":"Whenever a contact qualifies for our 'High-Value Prospects' audience in Marketing Cloud, automatically send them a personalized introductory email and update their Lead Score field on their Contact record.","expected":"Segment"}
|
|
68
|
-
{"id":"FT-SEG-002","prompt":"As soon as a lead enters the 'Dormant Accounts – 90 Days' re-engagement audience, send a win-back offer email and set the Re_Engagement_Sent__c checkbox to true on the Lead.","expected":"Segment"}
|
|
69
|
-
{"id":"FT-SEG-003","prompt":"When a contact gets added to the 'Trade Show Attendees Fall 2026' segment, send a follow-up email with the recorded session links and stamp the Last_Campaign_Touch__c date field.","expected":"Segment"}
|
|
70
|
-
{"id":"FT-SEG-004","prompt":"Once a lead falls into our 'Cold Nurture' drip audience, assign them to the nurture queue and fire off the first email in the onboarding sequence automatically.","expected":"Segment"}
|
|
71
|
-
{"id":"FT-SEG-005","prompt":"Any time a contact enters the 'Enterprise Trial Users' marketing audience, notify their assigned Account Executive via email and flip the In_Trial_Nurture__c field to true on the Contact.","expected":"Segment"}
|
|
72
|
-
{"id":"FT-SEG-006","prompt":"When someone is added to the 'Churned Customers – Winback' segment, send a discount offer email and create a follow-up Task on the related Account for the CSM to call within three days.","expected":"Segment"}
|
|
73
|
-
{"id":"FT-RTORCH-001","prompt":"When an Opportunity is marked Closed Won, automatically kick off a multi-stage handoff: first assign a solutions architect to scope the implementation, wait for them to submit a plan, then route it to the provisioning team to set up the environment, and finally notify customer success to schedule the kickoff call.","expected":"RecordTriggeredOrchestration"}
|
|
74
|
-
{"id":"FT-RTORCH-002","prompt":"Whenever a high-priority Case is created, coordinate a structured escalation across three teams: a Tier-2 agent investigates and documents root cause, then an engineering lead confirms the fix, then the support manager personally notifies the customer — each stage waiting for the prior one to finish.","expected":"RecordTriggeredOrchestration"}
|
|
75
|
-
{"id":"FT-RTORCH-003","prompt":"When a Job Application record is moved to the 'Offer Extended' stage, trigger a coordinated onboarding prep process where IT, Facilities, and HR each complete their setup tasks in sequence before the new hire's start date.","expected":"RecordTriggeredOrchestration"}
|
|
76
|
-
{"id":"FT-RTORCH-004","prompt":"Once a Work Order is created with Category set to 'Major Repair', automatically begin a staged approval and execution process: a field supervisor assesses the site, then procurement sources the parts, then the assigned technician completes the repair and logs the outcome.","expected":"RecordTriggeredOrchestration"}
|
|
77
|
-
{"id":"FT-RTORCH-005","prompt":"When an Account's tier is upgraded to 'Enterprise', start a multi-team white-glove setup process — a technical architect reviews the account needs, followed by the migration team executing the upgrade, and finally the customer success manager confirms all services are live before closing out the process.","expected":"RecordTriggeredOrchestration"}
|
|
78
|
-
{"id":"FT-AUTORCH-001","prompt":"When a sales rep clicks a 'Start Renewal' button on an Opportunity, we need a coordinated process that routes work to the sales team first to draft the proposal, then to legal for contract review, and finally to finance for pricing sign-off — each team finishing before the next gets their assignment.","expected":"AutolaunchedOrchestration"}
|
|
79
|
-
{"id":"FT-AUTORCH-002","prompt":"Our HR team needs a way to manually kick off a multi-stage new-hire setup process from an Employee record — it should assign equipment tasks to IT, badge and desk setup to Facilities, and system enrollment to Payroll in sequence, with each department tracking their own steps.","expected":"AutolaunchedOrchestration"}
|
|
80
|
-
{"id":"FT-AUTORCH-003","prompt":"Build a process that a project manager can launch from a button on a Project record to coordinate a client go-live: the solutions team configures the environment first, then IT provisions access, and finally the training team schedules onboarding sessions.","expected":"AutolaunchedOrchestration"}
|
|
81
|
-
{"id":"FT-AUTORCH-004","prompt":"Let customer success managers initiate a formal account remediation process from a Case record by clicking a button; the process should assign an investigation step to support engineering, wait for their findings, then route a review step to the account executive before the CSM closes the loop with the customer.","expected":"AutolaunchedOrchestration"}
|
|
82
|
-
{"id":"FT-RTAPPR-001","prompt":"Whenever a new Contract record is created with a Total Value above $50,000, automatically route it first to the Legal team for review and then to the VP of Finance for final sign-off before it can be activated.","expected":"RecordTriggeredApprovalOrchestration"}
|
|
83
|
-
{"id":"FT-RTAPPR-002","prompt":"As soon as an Opportunity's Discount field is updated to more than 20%, kick off a sequential sign-off process where the regional manager approves first, followed by the CFO if the deal is over $100K.","expected":"RecordTriggeredApprovalOrchestration"}
|
|
84
|
-
{"id":"FT-RTAPPR-003","prompt":"The moment a Capital Expenditure Request record is submitted (status flips to 'Pending'), have the department head, then the finance controller, and finally the COO each review and approve in sequence before the funds are released.","expected":"RecordTriggeredApprovalOrchestration"}
|
|
85
|
-
{"id":"FT-RTAPPR-004","prompt":"When a Purchase Order record is created with a line total exceeding $25,000, automatically send it through a two-stage approval: first the procurement lead, then the budget owner, waiting for each person's decision before moving to the next.","expected":"RecordTriggeredApprovalOrchestration"}
|
|
86
|
-
{"id":"FT-RTAPPR-005","prompt":"Any time a Job Requisition record's headcount is changed to more than three open roles, trigger a multi-step sign-off that routes to the HR Business Partner and then to the VP of Talent before the positions can be posted.","expected":"RecordTriggeredApprovalOrchestration"}
|
|
87
|
-
{"id":"FT-RTAPPR-006","prompt":"When a customer Refund Request record is created for amounts over $5,000, automatically escalate it through a sequential review by the billing manager and then the finance director, pausing for each approval before processing the refund.","expected":"RecordTriggeredApprovalOrchestration"}
|
|
88
|
-
{"id":"FT-AUTAPPR-001","prompt":"When a sales rep submits a contract record for sign-off, route it sequentially to the legal reviewer and then the VP of Sales, waiting for each approval before advancing, so the contract status can only become Active once both have authorized it.","expected":"AutolaunchedApprovalOrchestration"}
|
|
89
|
-
{"id":"FT-AUTAPPR-002","prompt":"After a manager clicks the Submit for Review button on a Capital_Expenditure__c record, collect authorizations from the department director and the CFO in sequence before the purchase order is released.","expected":"AutolaunchedApprovalOrchestration"}
|
|
90
|
-
{"id":"FT-AUTAPPR-003","prompt":"When a rep sends an Opportunity with a discount above 20% for approval, get sign-off from the regional VP and then the finance controller—holding each step until the previous approver responds—before the deal can close.","expected":"AutolaunchedApprovalOrchestration"}
|
|
91
|
-
{"id":"FT-AUTAPPR-004","prompt":"When a hiring manager submits a Job_Requisition__c for review, gather approvals from the department head, HR director, and budget committee one after another, waiting at each stage before the requisition can proceed to posting.","expected":"AutolaunchedApprovalOrchestration"}
|
|
92
|
-
{"id":"FT-AUTAPPR-005","prompt":"A sales user submits a high-value Quote for authorization; based on the total amount, route it to one or two pricing managers for sign-off before the quote is allowed to be sent to the customer.","expected":"AutolaunchedApprovalOrchestration"}
|
|
93
|
-
{"id":"FT-AUTAPPR-006","prompt":"When a billing agent submits a large refund request on a Case for approval, first get the billing supervisor's authorization and then the finance director's before the refund is issued to the customer.","expected":"AutolaunchedApprovalOrchestration"}
|
|
94
|
-
{"id":"FT-IRR-001","prompt":"Build an Individual Related Record-Triggered flow on the Lead object that fires when a lead record is updated, then pauses until the customer opens our nurture email before updating the consent status on the linked Individual.","expected":"IndivRelatedRecord"}
|
|
95
|
-
{"id":"FT-IRR-002","prompt":"I need a flow for an individual that runs first when their record is updated and then pauses mid-flow until they click the link in our marketing email, and once they click, sends them a follow-up SMS.","expected":"IndivRelatedRecord"}
|
|
96
|
-
{"id":"FT-IRR-003","prompt":"Create a flow for an individual that sets their Status to Active whenever their Contact record is created or updated.","expected":"RecordTriggered"}
|
|
97
|
-
{"id":"FT-IRR-004","prompt":"I want to create a marketing automation event flow that triggers when Lead status is Nurturing. The flow should have Send to Journey action which sends to NurtureSeries journey. Then waits for the Journey Builder Goal Met for that journey. If the goal is met, then create a high priority task for the Lead owner to follow up.","expected":"IndivRelatedRecord","expectAsk":false}
|
|
98
|
-
{"id":"FT-IRR-005","prompt":"When a Lead's status changes to Nurturing, create a high priority task for the lead owner to follow up.","expected":"RecordTriggered","expectAsk":false}
|
|
99
|
-
{"id":"FT-IRR-006","prompt":"Create a marketing automation event flow that starts when a customer clicks a link in our welcome email and then sends them a follow-up SMS.","expected":"AutomationEvent"}
|
|
100
|
-
{"id":"FT-FORM-001","prompt":"When someone submits our webinar registration form, send them a confirmation email and add them to the webinar campaign.","expected":"FormSubmissionEvent"}
|
|
101
|
-
{"id":"FT-FORM-002","prompt":"Build an Automation Event-triggered flow that fires when a prospect submits our Contact Us form and sets their Lead Rating to Warm.","expected":"FormSubmissionEvent"}
|
|
102
|
-
{"id":"FT-FORM-003","prompt":"Build a form that walks a support agent step by step through collecting a customer's shipping address, then updates their Contact record.","expected":"Screen"}
|
|
103
|
-
{"id":"FT-CRM-001","prompt":"Make me a CRM Triggered Flow that sends an email, the trigger should be everytime a contact is updated","expected":"IndivRelatedRecord","expectAsk":true}
|
|
104
|
-
{"id":"FT-CRM-002","prompt":"Build a CRM Triggered flow on Lead that sends our welcome email whenever a new lead is created.","expected":"IndivRelatedRecord","expectAsk":true}
|
|
105
|
-
{"id":"FT-CRM-003","prompt":"Set up a CRM Trigger so that when a Contact's mailing address is updated we send them our Address Confirmation marketing email.","expected":"IndivRelatedRecord","expectAsk":false}
|
|
106
|
-
{"id":"FT-CRM-004","prompt":"Whenever a Contact is updated, send an email alert to the contact's owner.","expected":"RecordTriggered","expectAsk":false}
|
|
107
|
-
{"id":"FT-CRM-005","prompt":"When a Data Cloud Individual DMO record (ssot__Individual__dlm) is updated, create a follow-up Task for the account owner.","expected":"DataCloudDataChange","expectAsk":false}
|
|
108
|
-
{"id":"FT-CRM-006","prompt":"Make me a marketing CRM Triggered Flow that sends an email, the trigger should be everytime a contact is updated","expected":"IndivRelatedRecord","expectAsk":false}
|
|
109
|
-
{"id":"FT-CRM-007","prompt":"Make a CRM Triggered flow on Contact that does an assignment","expected":"IndivRelatedRecord","expectAsk":true}
|
|
110
|
-
{"id": "FT-OND-001", "prompt": "Build an On-Demand Flow that our mobile app calls through the API to send a welcome SMS to the customer who just signed up.", "expected": "OnDemand"}
|
|
111
|
-
{"id": "FT-OND-002", "prompt": "Create an autolaunched flow our website calls through the REST API to send our marketing welcome email to the person who just registered.", "expected": "OnDemand"}
|
|
112
|
-
{"id": "FT-OND-003", "prompt": "Create an on-demand flow that Apex calls to recalculate an Account's health score and update the record.", "expected": "Autolaunched"}
|
|
113
|
-
{"id": "FT-OND-004", "prompt": "Build an autolaunched flow, called from Apex, that sends a plain notification email to the case owner.", "expected": "Autolaunched"}
|
|
114
|
-
{"id": "FT-OND-005", "prompt": "Create an On-Demand Flow (not a regular autolaunched flow) that our support portal calls through the API to create a Case from a subject and a description.", "expected": "OnDemand"}
|
|
115
|
-
{"id": "FT-OND-006", "prompt": "Build a flow our booking app calls through the API for one guest at a time. It sends them our \"Check-in Reminder\" email from our Front Desk sender, with consent from our \"Guest Updates\" subscription.", "expected": "OnDemand"}
|
|
116
|
-
{"id": "FT-OND-007", "prompt": "Build a flow our booking app calls through the API that fires the \"New Booking\" email alert to the property manager.", "expected": "Autolaunched"}
|