PluginBench
Skill
Pass
Audit score 90

platform-agentexchange-partner-offers-configure

forcedotcom/sf-skills

Enable or disable partner offer reception in Salesforce orgs via Transactable Marketplace org preferences.

What is platform-agentexchange-partner-offers-configure?

Configures the enableTransactableMarketplaceReceivePartnerOffers org preference to control whether a Salesforce org can receive partner offers from the Transactable Marketplace. Use this when you need to turn partner offer reception on or off for an org via the Metadata API.

  • Query current org preference state using Tooling API
  • Generate and deploy TransactableMarketplacePrivateOfferSettings metadata files
  • Enable or disable partner offer reception with confirmation workflow
  • Verify preference changes post-deployment
  • Resolve package directories from sfdx-project.json

How to install platform-agentexchange-partner-offers-configure

npx skills add https://github.com/forcedotcom/sf-skills --skill platform-agentexchange-partner-offers-configure
Prerequisites
  • Salesforce CLI (sf) version 2.0.0 or higher
  • jq version 1.6.0 or higher
  • Target org API version 67.0 or later
  • Modify All Data or org preference admin permission in target org
Claude Code
Cursor
Windsurf
Cline

How to use platform-agentexchange-partner-offers-configure

  1. 1.Query the current preference value using the Tooling API to check if already enabled
  2. 2.Resolve the package directory from sfdx-project.json
  3. 3.Write the TransactableMarketplacePrivateOfferSettings metadata file to <packageDir>/settings/TransactableMarketplacePrivateOffer.settings
  4. 4.Confirm the target org alias and desired state (true/false) with the user
  5. 5.Deploy the metadata using sf project deploy start
  6. 6.Re-run the Tooling API query to verify the preference value matches the desired state

Use cases

Good for
  • Enable a subscriber org to receive partner offers from the Transactable Marketplace
  • Disable partner offer reception for an org that no longer participates in TM flows
  • Verify the current state of the enableTransactableMarketplaceReceivePartnerOffers preference
  • Deploy org preference changes across multiple orgs in a project
Who it's for
  • Salesforce administrators managing Transactable Marketplace participation
  • Platform engineers configuring org preferences via metadata
  • DevOps teams automating org setup for partner offer flows

platform-agentexchange-partner-offers-configure FAQ

What happens if the preference is already enabled?

The Tooling API query will return the existing record with Value=true. Confirm with the user before proceeding with deployment to avoid unnecessary changes.

Why does the settings file need to be named TransactableMarketplacePrivateOffer.settings?

The Metadata API requires the filename to match the settings node name. Using any other name will cause deployment to fail.

Can I see this preference in the Salesforce Setup UI?

No, enableTransactableMarketplaceReceivePartnerOffers is not surfaced in the UI. The Tooling API query is the only way to verify the current value.

What should I do if the deploy succeeds but the value doesn't change?

Search the project for other TransactableMarketplacePrivateOffer.settings files that may be overriding this one. Consolidate settings into a single file.

What permissions are required to deploy this change?

The user running the deploy must have Modify All Data or org preference admin permission in the target org.

Full instructions (SKILL.md)

Source of truth, from forcedotcom/sf-skills.


name: platform-agentexchange-partner-offers-configure description: "Enable or disable the org preference that controls whether a Salesforce org can receive partner offers from the Transactable Marketplace. Use this skill when the user wants to turn partner offer reception on or off for an org. TRIGGER when: user asks to enable or disable partner offers, configure TransactableMarketplaceReceivePartnerOffers, configure enableTransactableMarketplaceReceivePartnerOffers, set up marketplace partner offer reception, toggle the TM partner offers setting, edit a TransactableMarketplacePrivateOffer.settings file, or configure org preferences related to transactable marketplace. DO NOT TRIGGER when: user needs to create or manage the partner offer records themselves, configure marketplace listing settings, or work with SfdcPartnerOffer objects (use platform-metadata-deploy or platform-apex-generate instead)." metadata: version: "1.0" domains: ["Platform"] minApiVersion: "67.0" relatedSkills: - "platform-apex-generate" - "platform-metadata-deploy" cliTools: - tool: ["sf"] semver: ">=2.0.0" - tool: ["jq"] semver: ">=1.6.0"

Enabling Transactable Marketplace Receive Partner Offers Org Preference

This skill configures the enableTransactableMarketplaceReceivePartnerOffers org preference via the TransactableMarketplacePrivateOfferSettings Metadata API type, which controls whether a Salesforce org is eligible to receive partner offers through the Transactable Marketplace. It is required for subscriber orgs that participate in the TM partner offer flow.

Scope

  • In scope: Reading the current value of the pref, enabling or disabling it via Metadata API (TransactableMarketplacePrivateOfferSettings), and verifying the change took effect.
  • Out of scope: Creating or managing partner offer records, configuring marketplace listings, or any Apex/trigger changes related to offer processing.

Required Inputs

  • Target org alias or username: The org where the pref should be set. Ask if not provided.
  • Desired state: true (enable) or false (disable). Default: true.

Workflow

Phase 1 — Check current state

  1. Query the current preference value by running:

    sf data query -q "SELECT Preference, Value FROM OrgPreference WHERE Preference = 'TransactableMarketplaceReceivePartnerOffers'" --target-org <alias> --use-tooling-api
    

    If the record exists and Value = true, the pref is already enabled — confirm with the user before proceeding. If the query returns no rows, the pref is not yet set (defaults to false).

  2. Resolve the org's package directory to determine where to write metadata. Run this and use its output as <packageDir>:

    jq -r '.packageDirectories[0].path // "force-app/main/default"' sfdx-project.json
    

Phase 2 — Apply the preference

  1. Write the TransactableMarketplacePrivateOfferSettings metadata file — load assets/org-pref-template.md for the exact XML structure, then write the file at:

    <packageDir>/settings/TransactableMarketplacePrivateOffer.settings
    

    Set <enableTransactableMarketplaceReceivePartnerOffers>true</enableTransactableMarketplaceReceivePartnerOffers> (or false if disabling).

  2. Deploy the metadata to the target org. Before running the deploy, confirm with the user:

    • Confirmed the target org alias with the user (deploying to the wrong org is not easily reversible)
    • Confirmed the desired state (true/false) matches the user's intent
    sf project deploy start --metadata TransactableMarketplacePrivateOfferSettings --target-org <alias>
    

Phase 3 — Verify

  1. Confirm the change by re-running the Tooling API query from step 1 and verifying the Value column matches the desired state.

  2. Report to the user — see Output Expectations below.


Rules / Constraints

RuleRationale
Always query the current value before writing metadataAvoids unnecessary deploys and detects conflicting changes
Use TransactableMarketplacePrivateOfferSettings as the metadata typeThis is the concrete type registered in the platform for this pref, not the generic OrgPreferenceSettings
The settings file must be named TransactableMarketplacePrivateOffer.settingsMetadata API requires the filename to match the settings node name
Do not hardcode force-app/main/default/Always read sfdx-project.json for the actual package directory
Never deploy without confirming the org alias with the userDeploying to the wrong org is not easily reversible

Gotchas

IssueResolution
Tooling API query returns no rowsPref is unset (defaults to false). Safe to create a new settings file.
Deploy fails with INVALID_TYPEThe metadata type name is TransactableMarketplacePrivateOfferSettings — check the --metadata flag value.
Deploy succeeds but value doesn't changeAnother settings file in the project may be overriding this one. Search for other TransactableMarketplacePrivateOffer.settings files in the project.
INSUFFICIENT_ACCESS_OR_READONLY on deployUser running the deploy must have the "Modify All Data" or org preference admin permission in the target org.
Pref not visible in UIenableTransactableMarketplaceReceivePartnerOffers is not surfaced in Setup UI — the Tooling API query is the only way to verify it.
Available from API version 67.0+ onlyThe type is available from API v67.0 — deploying against an older API version will fail.

Output Expectations

After completing all phases, report:

Org: <alias>
Preference: enableTransactableMarketplaceReceivePartnerOffers
Previous value: <true|false|unset>
New value: <true|false>
File written: <packageDir>/settings/TransactableMarketplacePrivateOffer.settings
Deploy status: Success

Reference File Index

FileWhen to read
assets/org-pref-template.mdPhase 2, step 3 — use as the exact XML structure for the settings file
examples/org-preference-settings.xmlTo verify the generated file matches expected format