
Sf Industry Commoncore Callable Apex
Implement or migrate Salesforce Industries callable Apex using System.Callable and legacy VlocityOpenInterface patterns for OmniStudio integrations.
Overview
sf-industry-commoncore-callable-apex is an agent skill for the Build phase that implements and migrates Salesforce Industries callable Apex between legacy Vlocity open interfaces and System.Callable.
Install
npx skills add https://github.com/jaganpro/sf-skills --skill sf-industry-commoncore-callable-apexWhat is this skill?
- Guidance aligned with Salesforce Industries callable implementation docs
- System.Callable migration from VlocityOpenInterface and VlocityOpenInterface2
- invokeMethod action contract and response map design
- Bundled examples for common Industries callable scenarios
- CTA-authored patterns for legacy OmniStudio open-interface parity
Adoption & trust: 842 installs on skills.sh; 418 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You must expose OmniStudio or Industries actions through Apex but legacy VlocityOpenInterface code is unclear or you need a Callable migration path.
Who is it for?
Salesforce developers shipping Industries/OmniStudio features who need authoritative callable and migration patterns in one place.
Skip if: Greenfield projects with no Salesforce Industries footprint or builders who only need generic REST APIs outside the platform.
When should I use this skill?
When implementing or migrating Industries callable Apex, Integration Procedure actions, or Vlocity open-interface invokeMethod handlers.
What do I get? / Deliverables
Callable Apex classes that match Industries contracts, with migration-friendly invokeMethod handling and documented response maps.
- Callable Apex class(es) matching Industries action contracts
- Migration notes from legacy open-interface signatures
Recommended Skills
Journey fit
Callable Apex is integration glue on the Salesforce platform during product build for regulated and industry clouds. OmniStudio, Integration Procedures, and invokeMethod contracts are third-party-style service boundaries inside Salesforce—integrations subphase.
How it compares
Industries-specific Apex callable patterns—not generic Salesforce LWC or unrelated Apex trigger skills.
Common Questions / FAQ
Who is sf-industry-commoncore-callable-apex for?
Solo and small-team Salesforce developers working in Industries clouds who implement or modernize callable Apex for OmniStudio actions.
When should I use sf-industry-commoncore-callable-apex?
During Build integrations while authoring Integration Procedure callables or migrating VlocityOpenInterface implementations to System.Callable.
Is sf-industry-commoncore-callable-apex safe to install?
Review the Security Audits panel on this Prism page; Apex skills may suggest deploying to orgs—validate in sandbox and follow your org change-management rules.
SKILL.md
READMESKILL.md - Sf Industry Commoncore Callable Apex
# Credits & Acknowledgments This skill was built upon the collective wisdom of the Salesforce Industries and Salesforce Apex communities. We gratefully acknowledge the following authors and resources whose ideas, patterns, and best practices have shaped this skill. --- ## Authors & Contributors ### Primary Contributor **Shreyas Dhond (CTA)** Key contributions: - Contributed the `sf-industry-commoncore-callable-apex` skill - Strengthened callable guidance, migration patterns, and bundled examples - Expanded coverage for `System.Callable` and legacy `VlocityOpenInterface` / `VlocityOpenInterface2` scenarios ### Salesforce Industries Documentation Team **[Callable Implementations](https://help.salesforce.com/s/articleView?id=ind.v_dev_t_callable_implementations_651821.htm&type=5)** Key contributions: - Recommended patterns for Industries callable implementations - Migration guidance from `VlocityOpenInterface`/`VlocityOpenInterface2` - Action contract and response design guidance --- ## Frameworks & Libraries ### OmniStudio / Vlocity Open Interface (Legacy) - **Provider**: Salesforce Industries - **Interface signatures**: `VlocityOpenInterface` and `VlocityOpenInterface2` with `invokeMethod(String methodName, Map<String, Object> inputMap, Map<String, Object> outputMap, Map<String, Object> options)` - **Reference**: https://help.salesforce.com/s/articleView?id=ind.v_dev_t_callable_implementations_651821.htm&type=5 ### System.Callable (Salesforce Platform) - **Provider**: Salesforce - **Reference**: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/ --- ## Official Salesforce Resources - **Salesforce Help: Callable Implementations**: https://help.salesforce.com/s/articleView?id=ind.v_dev_t_callable_implementations_651821.htm&type=5 - **Apex Developer Guide**: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/ - **Trailhead**: https://trailhead.salesforce.com --- ## Community Resources ### Salesforce Stack Exchange **[salesforce.stackexchange.com](https://salesforce.stackexchange.com/)** - Community Q&A and solutions - Industry-specific callable implementation discussions --- /** * @description Industries callable that finds Quotes on an Account that have at least one * QuoteLineItem with a specified Product2.ProductCode. * Integrates with OmniStudio/Industries extension points. * @author sf-industry-commoncore-callable-apex * * Actions: * - findQuotesByProductCode: Returns Quotes for an Account with QuoteLineItems matching productCode * * Input (findQuotesByProductCode): * - accountId (String, required): Id of the Account * - productCode (String, required): Product2.ProductCode to match on QuoteLineItems * * Output envelope: * - success (Boolean) * - data (Map): quotes (List<Map> with Id, Name, QuoteNumber) * - errors (List<Map>) */ public with sharing class Industries_QuoteByProductCallable implements System.Callable { private static final String ACTION_FIND_QUOTES = 'findQuotesByProductCode'; /** * @description Dispatches to the appropriate action handler. * @param action Action name (e.g. 'findQuotesByProductCode') * @param args Input map with accountId and productCode * @return Response envelope: success, data, errors */ public Object call(String action, Map<String, Object> args) { switch on action { when ACTION_FIND_QUOTES { return findQuotesByProductCode(args); } when else { throw new IndustriesCallableException('Unsupported action: ' + action); } } } /** * @description Finds all Quotes on an Account that have at least one QuoteLineItem * with the specified Product2.ProductCode. * @param args Map with keys: accountId (String), productCode (String) * @return Response envelope with quotes list or errors */ pr