forcedotcom/sf-skills

consumer-goods-rtr-datacloud-export-configure

Configure a Trade Promotion Management (TPM) org's RTR (Real Time Reporting) export pipeline to push promotion measures into Data Cloud (Data 360) for Trade Promotion Effectiveness (TPE) dashboards.

Zobacz źródło
Oryginalny dokument Skill

Treść z repozytorium z zachowaniem nagłówków, przykładów, kodu, tabel, linków i obrazów.

Setup RTR Data Cloud Export

Configures the Data-Cloud-targeted RTR exports: the Data_Cloud_Enabled system setting, a scoped SF Data Sync, an RTR_Report_Configuration__c record (with its KPI_Set__c) for Data Cloud export, and the export trigger/status/abort REST calls. Standalone and self-contained — runs on its own, or as a delegated step invoked by consumer-goods-tpe-dashboard-configure, which passes through its own already-collected username, dry-run flag, and GenieAdmin confirmation result.

Distinct from a sibling CSV-export RTR skill (if present in this org's checkout): that skill targets Usage__c IN ('integrationmeta','reportmeta') for CSV export to the CGCloud Processing Services host. This skill targets Data Cloud export. Same underlying RTR_Report_Configuration__c object and KPI_Set__c Apex patterns, different Usage__c values and JSON__c shape — this skill does not invoke or depend on that sibling.

For now, this skill only supports `Usage__c = 'datacloudpromotionmeasuresmeta'` (JSON__c.object = "promotionmeasures") — it is hardcoded, never asked as an input. datacloudaccountplanmeasuresmeta (account-plan measures) is not yet wired up.

Inputs and namespace detection

Read references/inputs-and-namespace.md before starting. It covers:

  • The username/dry-run/GenieAdmin/TPM-Admin/namespace inputs that must be collected (or passed through by a calling skill) before Phase 1.
  • The Sales Org / KPI Set / measure-codes / date-from inputs that Phase 6 collects lazily, per Sales Org, only once its existing-config check comes back empty.
  • The namespace-detection procedure (scripts/detect-namespace.js) and the four NS/NS_SEGMENT/NS_APEX/NS_FIELD derivations used throughout every phase below.
  • scripts/render-apex.js (Apex template rendering) and scripts/resolve-id-by-name.js (name-to-id lookups) both load scripts/soql-escape.js to escape substituted/queried literals for safe SOQL/Apex interpolation.

Phases

Full step-by-step commands, queries, and Apex templates for every phase are in references/procedure.md. Run phases in order.

PhaseSummary
1Verify/assign GenieAdmin permission set; confirm TPM Admin persona assignment.
2Upsert the Data_Cloud_Enabled system setting via anonymous Apex; confirm the write.
3Trigger a scoped SF Data Sync against System_Setting__c, after capturing a baseline Batch_Run_Status__c Id.
4Poll/verify that sync completed (Done/Error/Fatal/Running).
5Verify the datacloudpromotionmeasuresmeta picklist value exists on Usage__c — if missing, stop and send the user to Setup (no programmatic fix exists).
6Loop, one Sales Org at a time: resolve Sales Org Name → Id, reuse an existing RTR_Report_Configuration__c or collect KPI Set/measure-codes/date-from and create one, sync if changed, then ask whether to add another Sales Org.
7Once Phase 6's loop is fully done, trigger the export once per configured Sales Org via scripts/sf-rest.js (never sf api request rest); capture requestId as the export guid.
8Poll each Sales Org's export status (Ready/Error/Aborted/Queued/InProgress) via scripts/sf-rest.js.
9Once every Sales Org has finished polling, ask the user to sync the promotionmeasures Data Cloud Data Stream themselves and get explicit confirmation it finished — this skill never triggers that sync.
10Abort an in-flight export via scripts/sf-rest.js — only if the user explicitly asks.
11Report pass/blocked/pending per phase.

Rules

  • Never assign a permission set, write a record, or trigger a sync/export without an explicit user go-ahead first.
  • Never guess or hardcode Batch_Name__c — identify the sync's Batch_Run_Status__c row by recency against the captured baseline Id, and log the full row set.
  • Never attempt to programmatically add a missing Usage__c picklist value — the user must add it manually via Setup (link in Phase 5, references/procedure.md).
  • Never ask for a Usage type — this skill is hardcoded to Usage__c = 'datacloudpromotionmeasuresmeta' / JSON__c.object = "promotionmeasures" for now.
  • When the requested export type is anything other than promotion measures (e.g. datacloudaccountplanmeasuresmeta/account-plan measures): state the limitation, then stop or ask if the user wants the promotion-measures export instead for that Sales Org. Do not provide field-by-field manual configuration instructions for the unsupported path — no suggested Usage__c/JSON__c values, no picklist-add walkthrough. Offering a workaround recipe for the exact path this skill refuses is scope creep, not help. Report the run as blocked, not partially-passed.
  • Never skip Phase 6's existence check (keyed on Usage__c + Sales_Organization__c) — and never overwrite an existing RTR_Report_Configuration__c found by that check without a separate, explicit user go-ahead.
  • Never trigger Phase 7's export before Phase 6's per-Sales-Org loop is fully done — always ask whether to add another Sales Org before moving from Phase 6 to Phase 7.
  • Always give the user a chance to supply a custom Internal_Name__c (Phase 6 step 4) — default to "Data 360 Promotion Measures Export <Sales Org Name>" (no hyphen) only if they decline. This value is also metaname in Phase 7's export — never invent a different one for that call.
  • Phase 7 exports once per Sales Org, never once for the whole run.
  • Both the Sales Org and the KPI Set are given as Names by the user, resolved to Ids by query — this skill never creates a Sales_Organization__c, a KPI_Set__c, or KPI Set junction rows.
  • Never sync a Sales Org's config in Phase 6 unless this run actually created it — reusing an existing config as-is is a no-op, no sync call.
  • Never call the abort endpoint unless the user explicitly asks to abort.
  • Never claim Phase 9 is done on Phase 8's Ready status alone — always get the user's explicit confirmation that the promotionmeasures Data Stream was synced, once for the whole batch, before moving to Phase 10.
  • Never hardcode the namespace in a REST path, Apex snippet, or SOQL query — always use the caller-passed or self-detected NS/NS_SEGMENT/NS_APEX/NS_FIELD.
  • This skill only calls global Apex classes, REST endpoints, or the anonymous-Apex templates in its own scripts/ directory — never a public/private method directly, and never a script or template from outside this skill's own directory.

Report

At the end of a run, give the user a structured status per phase (1-10): pass / blocked / pending, with the specific blocking reason and remediation click-path where applicable (e.g. the Setup path for a missing picklist value). Call out anything skipped due to dry-run or a declined confirmation.

When invoked via delegation (the calling skill used the Skill tool to reach this file, rather than the user directly): this report is an intermediate result, not the end of the task. Return it to the calling skill and let it continue with its own next phase — do not present this report to the user as the final answer and stop. Only surface this report directly to the user when this skill was invoked standalone.

z tego samego repozytorium

Więcej Skills

Wszystkie Skills
forcedotcom
Społeczność

education-cloud-multi-campus-configure

Use this skill when a Salesforce Administrator needs to create OR maintain an institutional hierarchy for Education Cloud by parsing organizational structure from a PDF, URL, text, or CSV. On a first run it creates System, Campus, College, and Department Account records linked via ParentId plus 1:1 Business Profile records. On later runs it reconciles the org's existing hierarchy against the desired structure and applies only the delta — adding new units, renaming, or moving a node under a different parent — never recreating what exists. TRIGGER when the user wants to set up, configure, build, update, restructure, or reorganize a multi-campus structure, institutional hierarchy, or account hierarchy with business profiles; or add, rename, or move a campus, college, or department. DO NOT TRIGGER for single-campus flat setups without hierarchy levels, one-off manual account creation, or non-Education-Cloud account management.

instalacje
2
GitHub Stars
976
Aktualizacja
8 wrz
forcedotcom
Społeczność

automation-sandbox-post-copy-config-generate

Generate the JSON config file that the Salesforce sandbox post-copy automation tool consumes, from a customer SOP in any format (PDF, xlsx, csv, JSON, docx, Markdown, plain text, or a screenshot of an endpoint table). Use when the user asks to create, build, generate, produce, or convert a post-copy or post-refresh automation config — turning a sandbox-refresh SOP into a JSON array of OutboundMessages and RemoteSiteSettings entries with ConfigurationName, Label, Fields, IsActive, and ExecutionOrder. Also trigger for phrasings like \"post-copy config\", \"post-refresh automation JSON\", \"update the outbound message (OBM) endpoints after refresh\", \"convert this SOP to config\", \"remote site settings JSON\", \"refresh planner to JSON\", or \"sandbox refresh config\". DO NOT TRIGGER when: user wants to deploy the generated config to an org (use platform-metadata-deploy), or apply/execute/run/dry-run the post-copy automation JSON against a sandbox (use automation-sandbox-post-copy-configure).

instalacje
1
GitHub Stars
976
Aktualizacja
8 wrz
forcedotcom
Społeczność

commerce-b2b-open-code-components-integrate

Integrate Salesforce B2B Commerce open source components from GitHub into B2B Commerce stores. Use when users mention \"integrate open code components\", \"open source B2B commerce\", \"add open code components\", \"forcedotcom/b2b-commerce-open-source-components\", or want to add open source commerce components to their store. Copies all components and labels so they become available in Experience Builder.

instalacje
1
GitHub Stars
976
Aktualizacja
8 wrz
forcedotcom
Społeczność

commerce-b2b-open-code-components-replace

Replace OOTB (out-of-the-box) B2B Commerce components with open source equivalents in site metadata content.json files, or look up the equivalent open code site: component for OOTB definitions. Use when users mention \"replace OOTB components\", \"replace commerce components with open code\", \"swap OOTB for open source\", \"replace commercebuilder:\", \"replace OOTB in site\", \"replace component in site metadata\", \"replace component definition\", \"find open code equivalent\", \"equivalent open code component\", \"OOTB to open code mapping\", \"what is the site component for\", components \"in this view\" or \"for a given view\", or a specific list of component names — and want to update or only discover mappings in their store metadata.

instalacje
1
GitHub Stars
976
Aktualizacja
8 wrz