sshvarzman-salesforce/claude-skills

handling-locked-standard-objects

Detect and work around standard industry/FSC objects (e.g.

Zobacz źródło

Jak używać

  1. Skopiuj polecenie instalacji i sprawdź źródła przed instalacją we własnym środowisku agenta.
  2. W oryginale sprawdź wymagane narzędzia, dane dostępowe i obsługiwane środowiska.
  3. Opisz dane wejściowe i oczekiwany rezultat; porównaj wynik ze źródłami.
npx skills add https://github.com/sshvarzman-salesforce/claude-skills --skill handling-locked-standard-objects

Przed rozpoczęciem

  • Instalacja nie obejmuje subskrypcji modelu, limitu API ani uprawnień do plików.
  • Gwiazdki i instalacje pokazują aktywność, a nie niezależny test jakości lub bezpieczeństwa.
Oryginalny dokument Skill

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

Handling Locked Standard Objects (custom fields that never materialize)

The trap

Some standard industry / Financial Services Cloud objects — confirmed on the standard `Claim` object (KeyPrefix 0Zk) in the CommericalDemos org — are structurally locked: you can create custom fields on them through every normal channel and get success every time, but the column never physically exists.

  • A CustomField metadata deploy returns success: true.
  • A Tooling API POST to /sobjects/CustomField returns created: true.
  • EntityDefinition.IsCustomizable reports true.
  • …and yet the field is invisible to SOQL (No such column), to REST describe, and to Apex Schema.getGlobalDescribe().get('Claim').getDescribe().fields.getMap() — a field "created" seconds earlier returns false from .containsKey(...).

This is structural (a locked managed/standard object), not a propagation delay or cache staleness. Waiting does not fix it. The "created" field records are orphaned metadata no-ops — harmless, but never queryable.

Detect it before you design around it

Don't trust the deploy's success:true. Prove the column exists at runtime with Apex `getGlobalDescribe` — this is the authoritative check:

apex
// run via: sf apex run --file check.apex --target-org <org>
Map<String, Schema.SObjectField> f =
    Schema.getGlobalDescribe().get('Claim').getDescribe().fields.getMap();
System.debug('HAS FIELD: ' + f.containsKey('provider_name__c'));  // false on a locked object

If this prints false for a field you just deployed successfully, the object is locked. A SOQL smoke test on the field (SELECT Provider_Name__c FROM Claim LIMIT 1) failing with No such column corroborates it.

The workaround: structured lines in a standard long-text field

Since you can't add columns, pack the structured data into an existing standard long-text field (Claim.Summary, 32,000 chars) as delimited Key: Value lines, and parse them back out in the prompt template / flow:

Provider: Bright Smile Dental
Service Date: 2026-07-12
Referral Required: No
Referral On File: No
Details: Dental claim for a crown replacement. Currently under review.
  • Write side (system-context create flow): build the block with a formula using BR() between lines (see building-system-context-agent-data-flows), assign to Summary.
  • Read side (flex prompt template): instruct the model to parse Provider: / Service Date: / Referral Required: / Referral On File: / Details: out of the Summary text into whatever sections the customer sees. The template does the parsing — no custom fields required.
  • Use only standard createable/queryable fields otherwise: on Claim those are Name, AccountId, ClaimType, Status, ClaimReason, EstimatedAmount, Summary, PolicyNumberId (all confirmed queryable at runtime).

When you hit a new object

  1. Deploy/create the field as normal.
  2. Immediately run the `getGlobalDescribe` Apex check. If true, you're fine — use the field. If false, the object is locked.
  3. If locked: leave the orphaned field record (harmless), switch to the long-text-with-structured-lines design, and note it so nobody re-litigates it.

Gotchas

  • `success:true` is a lie here. Deploy/Tooling success does not mean the column exists. Always confirm with getGlobalDescribe.
  • `IsCustomizable=true` is also misleading on these objects — it does not guarantee runtime materialization.
  • Not fixable by retry/wait/cache-clear — it's structural. Don't burn time re-deploying.
  • Relationships to these objects still work — e.g. ClaimParticipant (a separate object) links Contact→Claim normally; only custom fields on the locked object itself fail. Model the extra data as a long-text block or on a related object you can customize.

Powiązane zadania

z tego samego repozytorium

Więcej Skills

Wszystkie Skills
sshvarzman-salesforce
Społeczność

activating-datacloud

Salesforce Data Cloud Act phase. Use this skill when the user manages activations, activation targets, data actions, or downstream delivery of Data Cloud audiences and data. TRIGGER when: user manages activations, activation targets, data actions, or downstream delivery of Data Cloud audiences and data. DO NOT TRIGGER when: the task is segment creation (use segmenting-datacloud), data retrieval/search work (use retrieving-datacloud), or STDM/session tracing (use observing-agentforce).

instalacje
1
GitHub Stars
0
Aktualizacja
15 paź
sshvarzman-salesforce
Społeczność

agentforce-skills-research

Research Agentforce configuration patterns — topics, actions, instructions, CLTs, knowledge, planner behavior. Searches Salesforce docs, Trailhead, internal repos (git.soma), Slack channels, and Google Docs to find working examples, known issues, and best practices.

instalacje
1
GitHub Stars
0
Aktualizacja
15 paź
sshvarzman-salesforce
Społeczność

harmonizing-datacloud

Salesforce Data Cloud Harmonize phase. Use this skill when the user works with DMOs, mappings, relationships, identity resolution, unified profiles, data graphs, or universal IDs. TRIGGER when: user works with DMOs, mappings, relationships, identity resolution, unified profiles, data graphs, or universal IDs. DO NOT TRIGGER when: the task is only about streams/DLOs (use preparing-datacloud), segments/insights (use segmenting-datacloud), retrieval/search (use retrieving-datacloud), or STDM/sessio

instalacje
1
GitHub Stars
0
Aktualizacja
15 paź
sshvarzman-salesforce
Społeczność

preparing-datacloud

Salesforce Data Cloud Prepare phase. Use this skill when the user creates or manages Data Cloud data streams, DLOs, transforms, or Document AI configurations. TRIGGER when: user creates or manages Data Cloud data streams, DLOs, transforms, or Document AI configurations, or asks about ingestion into Data Cloud. DO NOT TRIGGER when: the task is connection setup only (use connecting-datacloud), DMOs and identity resolution (use harmonizing-datacloud), or query/search work (use retrieving-datacloud)

instalacje
1
GitHub Stars
0
Aktualizacja
15 paź