integration-procedures
Use when building, reviewing, or debugging OmniStudio Integration Procedures. Triggers: 'integration procedure', 'IP', 'HTTP action', 'DataRaptor', 'rollbackOnError', 'failureResponse'. NOT for Apex-only integrations unless the main design choice is whether OmniStudio is still appropriate.
Best use case
integration-procedures is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Use when building, reviewing, or debugging OmniStudio Integration Procedures. Triggers: 'integration procedure', 'IP', 'HTTP action', 'DataRaptor', 'rollbackOnError', 'failureResponse'. NOT for Apex-only integrations unless the main design choice is whether OmniStudio is still appropriate.
Teams using integration-procedures should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/integration-procedures/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How integration-procedures Compares
| Feature / Agent | integration-procedures | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Use when building, reviewing, or debugging OmniStudio Integration Procedures. Triggers: 'integration procedure', 'IP', 'HTTP action', 'DataRaptor', 'rollbackOnError', 'failureResponse'. NOT for Apex-only integrations unless the main design choice is whether OmniStudio is still appropriate.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
You are a Salesforce expert in OmniStudio Integration Procedure design. Your goal is to build Integration Procedures that are fault-tolerant, correctly configured, and safe to operate across environments. ## Before Starting Check for `salesforce-context.md` in the project root. If present, read it first — particularly Named Credential usage, external-system ownership, and whether OmniStudio is the approved integration layer for this use case. Gather if not available: - What external systems or internal data sources does the IP call? - Are Named Credentials already configured for each external dependency? - What OmniScript, FlexCard, or API consumer will call this IP? - What input and output contract does the caller expect? ## How This Skill Works ### Mode 1: Build from Scratch 1. Start from the caller contract, not the step designer. 2. Configure root `propertySetConfig` safely before adding steps. 3. Design the sequence explicitly: read, invoke, transform, and return. 4. Add failure behavior to every risky step. 5. Name steps and assets so another team can operate them later. 6. Test happy path, empty response, timeout, and downstream business-error cases. ### Mode 2: Review Existing 1. Check root safety settings such as `rollbackOnError` and chainable limits. 2. Inspect HTTP actions for Named Credentials, timeout, and meaningful failure responses. 3. Check for placeholder text, silent continuation, or weak null handling. 4. Verify the output contract strips internal implementation detail. 5. Confirm naming, descriptions, and step order are maintainable. ### Mode 3: Troubleshoot 1. Reproduce the failure with known-good input in the debugger. 2. Identify whether the break is transport, auth, response shape, or business-level error handling. 3. Confirm the failing step actually propagates its failure to the caller. 4. Check environment-specific dependencies such as Named Credentials or promoted config. 5. Fix the orchestration and message path before adding more steps. ## Integration Procedure Rules ### Mandatory Root Settings | Setting | Why It Matters | |---------|----------------| | `rollbackOnError: true` | Prevents silent partial writes | | `chainableQueriesLimit` | Puts a hard ceiling on runaway query-heavy designs | | `chainableCpuLimit` | Prevents long transform paths from burning CPU invisibly | ### HTTP Action Rules - Use Named Credentials. Never hardcode URLs, secrets, or tokens in the IP. - Set an explicit timeout for every external call. - Treat HTTP 200 and business success as separate checks. - Make `failureResponse` real user-facing text, not placeholder copy. - Document what should happen if the external system is down. ### Contract Design | Area | Minimum Standard | |------|------------------| | Input | Named fields, expected types, and required vs optional markers | | Output | Stable response shape with error handling rules | | Internal-only data | Removed before returning to caller | | Null handling | Guarded before deep field access | # ## Recommended Workflow Step-by-step instructions for an AI agent or practitioner activating this skill: 1. Gather context — confirm the org edition, relevant objects, and current configuration state 2. Review official sources — check the references in this skill's well-architected.md before making changes 3. Implement or advise — apply the patterns from Core Concepts and Common Patterns sections above 4. Validate — run the skill's checker script and verify against the Review Checklist below 5. Document — record any deviations from standard patterns and update the template if needed --- ## Review Checklist - [ ] Root config includes rollback and reasonable chainable limits - [ ] Every HTTP action uses Named Credentials and timeout - [ ] `failureResponse` is specific and business-safe - [ ] Step descriptions and names are understandable without tribal knowledge - [ ] Input and output contracts are documented before deployment ## Salesforce-Specific Gotchas | Gotcha | What happens | |---|---| | `rollbackOnError` left false creates partial writes | Users see a failure while the org keeps half the data. | | HTTP 200 does not mean the business action succeeded | Always inspect response payload semantics. | | Named Credential availability varies by environment | Sandbox promotion often fails here first. | | Deep response mapping without null guards breaks suddenly | External APIs change shape more often than teams expect. | | Placeholder `failureResponse` text ships to production | Review it like user-facing copy, not developer notes. | ## Proactive Triggers Surface these WITHOUT being asked: | Pattern | Severity | Why / Fix | |---|---|---| | No `rollbackOnError: true` | Critical | Silent partial writes are an operability failure. | | Hardcoded endpoints or credentials | Critical | Use Named Credentials. | | HTTP action without timeout | High | Hanging orchestration is a real production issue. | | Placeholder or vague failure text | High | Callers need an actionable failure contract. | | No null checks on response traversal | Medium | Schema drift will break the IP. | ## Output Artifacts | When you ask for... | You get... | |---------------------|------------| | New IP scaffold | Root config, step sequence, and caller contract guidance | | IP review | Findings on rollback, auth, timeout, and maintainability | | Failure triage | Root cause plus smallest safe orchestration fix | ## Related Skills - **admin/connected-apps-and-auth**: Authentication and Named Credential choices often determine whether the IP can be operated safely. - **flow/fault-handling**: Use it when the orchestration or user error path belongs in Flow instead of OmniStudio.
Related Skills
scim-provisioning-integration
Use when designing or reviewing SCIM-based user lifecycle provisioning into Salesforce from Okta, Azure AD / Entra, or another IdP — create/update/deactivate, group-to-permission-set mapping, attribute mapping, and deprovisioning semantics. Triggers: 'scim provisioning', 'okta scim salesforce', 'entra salesforce provisioning', 'user deactivation automation', 'group to permission set mapping'. NOT for SSO/authentication setup (see single-sign-on skills).
omnistudio-lwc-integration
Use when embedding OmniScripts in Lightning Web Components, registering custom LWC elements inside OmniScript screens, or calling OmniScript/Integration Procedures from LWC. Triggers: embed omniscript in LWC, custom LWC element in OmniScript, call OmniScript from Lightning page, omnistudio-omni-script tag, seed data JSON, OmniScript launch from LWC. NOT for standalone LWC development, standard Flow embedding, or OmniScript-to-OmniScript embedding.
integration-procedure-cacheable-patterns
Use when designing Integration Procedures (IPs) with platform cache to cut latency and callout load. Covers cache key design, TTL selection, per-user vs org-wide partitions, invalidation on data changes, and safe fallback on cache miss/stale. Does NOT cover general IP authoring (see omnistudio-error-handling-patterns) or LWC client-side caching.
slack-salesforce-integration-setup
Use this skill when setting up or troubleshooting the Salesforce for Slack managed app — including connecting a Salesforce org to a Slack workspace, configuring the three-party admin handshake, linking Slack channels to Salesforce records, enabling record preview sharing, and managing org-level limits. Triggers on: Salesforce for Slack app not connecting, Slack org connection setup, Salesforce record sharing in Slack, Slack workspace admin approval, connecting Salesforce to Slack. NOT for building custom Slack apps or Slack bots (separate development platform), not for Slack Workflow Builder Salesforce connector (use slack-workflow-builder skill), not for Flow-based Slack messaging (use flow-for-slack skill).
sis-integration-patterns
Use this skill when designing or implementing an integration between a Student Information System (SIS) — such as Ellucian Banner, Ellucian Colleague, Anthology Student, Oracle PeopleSoft Campus Solutions, or Workday Student — and Salesforce Education Cloud. Covers the canonical Education Cloud data model objects (AcademicTermEnrollment, CourseOfferingParticipant, CourseOfferingPtcpResult, LearnerProfile, PersonAcademicCredential), external ID / upsert keying strategies using SIS-native identifiers (Banner PIDM, PeopleSoft EMPLID), batch nightly upsert patterns, Change Data Capture (CDC) for enrollment status writeback, and MuleSoft/middleware watermark patterns. Trigger keywords: SIS integration, Banner integration, PeopleSoft integration, Education Cloud data model, enrollment sync, grade writeback, AcademicTermEnrollment, LearnerProfile upsert. NOT for Salesforce Admissions Connect application processing, Financial Aid integration, Learning Management System (LMS) integrations, or general ETL tooling not involving Education Cloud objects.
salesforce-to-salesforce-integration
Use this skill to implement Salesforce-to-Salesforce integration patterns — covering the native S2S feature, API-based cross-org sync, Platform Event bridging, and Salesforce Connect Cross-Org adapter. Trigger keywords: Salesforce to Salesforce integration, cross-org data sharing, S2S feature, cross-org Platform Events, Salesforce Connect cross-org. NOT for multi-org strategy or architecture decisions (use architect/multi-org-strategy), single-org data sharing, or external (non-Salesforce) system integration.
real-time-vs-batch-integration
When to use this skill: choosing between real-time (synchronous callouts, Platform Events, CDC, Pub/Sub API) and batch (Bulk API 2.0, scheduled ETL) integration patterns. Trigger keywords: should I use real-time or batch, how to sync high-volume data, when to use Platform Events vs Bulk API, integration latency vs volume tradeoff. NOT for Batch Apex internals (use batch-apex-patterns), NOT for MuleSoft middleware design (use middleware-integration-patterns), NOT for CDC field tracking configuration.
platform-events-integration
Use when publishing Platform Events from external systems via REST API, subscribing to Platform Events from outside Salesforce via CometD or Pub/Sub API, designing replay ID strategy for durable external consumers, or handling high-volume event delivery guarantees. Trigger keywords: 'external publish platform event', 'CometD subscribe', 'Pub/Sub API', 'replay ID external', 'durable subscription', 'RetainUntilDate'. NOT for Apex-only event publishing or triggering (use platform-events-apex). NOT for Change Data Capture external subscription (use change-data-capture-integration).
middleware-integration-patterns
Use when selecting or comparing middleware / iPaaS tools (MuleSoft, Dell Boomi, Workato, Informatica) for Salesforce connectivity, or when determining whether a scenario requires middleware at all versus native Salesforce capabilities. Triggers: 'which iPaaS should I use', 'MuleSoft vs Boomi vs Workato', 'when do I need middleware for Salesforce', 'message transformation orchestration middleware'. NOT for MuleSoft Anypoint Salesforce Connector configuration (use mulesoft-salesforce-connector). NOT for API-led connectivity layer design (use api-led-connectivity). NOT for native Salesforce-to-Salesforce integration, Platform Events, or CDC.
idempotent-integration-patterns
Use when designing retry-safe integrations with Salesforce — including external ID upsert strategies, idempotency key management for inbound calls, Platform Event replay safety, and Outbound Message retry handling. NOT for Salesforce duplicate management rules.
heroku-salesforce-integration
Heroku ↔ Salesforce integration paths — Heroku Connect (Postgres bidirectional sync), Heroku AppLink (expose Heroku APIs to Flow / Apex / Agentforce), Heroku External Objects (Salesforce Connect oData), Platform Events, REST API in either direction, and Salesforce Canvas for UI embedding. Decision matrix + Heroku Connect deep dive (OAuth integration user, plan-tier row limits, polling cadence, region co-location). NOT for AWS integration (see integration/aws-salesforce-patterns), NOT for generic PaaS, NOT for MuleSoft.
file-and-document-integration
Use when uploading, downloading, managing, or integrating files and documents with Salesforce — covering ContentVersion/ContentDocument, REST multipart uploads, base64 inserts, Files Connect for external storage reads, and virus scanning callout patterns. Triggers: 'upload file to Salesforce', 'ContentVersion REST API', 'Files Connect external storage', 'multipart file upload', 'document integration pattern', 'virus scan uploaded file'. NOT for Bulk API data loads, Chatter feed post content, email attachment handling via EmailMessage, or CRM Content classic libraries.