# Integration Procedure naming, reuse and versioning practices

*Omnistudio Developer Study Guide · Integration Procedures · Last updated October 27, 2026 · https://www.certifyforce.com/study-guide/omnistudio-developer/integration-procedures/integration-procedure-naming-reuse-and-versioning-practices*

The documented best practices for Integration Procedures: camelCase Type, Sub Type and element names, modular and consolidated procedures, keeping caller-specific transforms out of reusable procedures, limiting Set Values to calculations, removing debug items before migration, asynchronous invocation settings, and why a new version doesn't affect callers.

- Certification: Salesforce Omnistudio Developer
- Exam section: Integration Procedures
- Study guide: https://www.certifyforce.com/study-guide/omnistudio-developer

**Official exam objective:**

> Describe best practices for Integration Procedures.

## What the exam expects

- Name an Integration Procedure's Type, Sub Type and elements the documented way: lower-case first letter, camelCase, no spaces or special characters.
- Apply the reuse practices: modular procedures, consolidating near-duplicates, and keeping per-caller transforms out of a reusable procedure.
- Use Set Values only for calculations, conditional values and static values, and remove debug items before migrating to production.
- Choose the asynchronous invocation setting the best practices name, and keep data calls within limits.
- Explain why a new version of a procedure doesn't require changes to its callers.

Key terms: **Type and Sub Type** (the procedure's unique identity, joined as Type_SubType to call it), **camelCase** (names like serviceGetAccountDetails), **reusable Integration Procedure** (one procedure called by several components), **Set Values** (an action that sets values in the data JSON), **version** (a numbered copy of a procedure; one per Type and Sub Type can be active).

## Key facts

| Fact | Detail | Source |
|---|---|---|
| Type first letter | Lower case, for Lightning Web Component compatibility | [Trailhead: Configure IPs](https://trailhead.salesforce.com/content/learn/modules/omnistudio-integration-procedure-fundamentals/configure-your-integration-procedure) |
| Name format | camelCase, prefixVerbObjectDetail, such as serviceGetAccountDetails | [Trailhead: Configure IPs](https://trailhead.salesforce.com/content/learn/modules/omnistudio-integration-procedure-fundamentals/configure-your-integration-procedure) |
| Unique identifier | Type_SubType, such as Auto_CreateUpdateQuote | [Naming conventions](https://help.salesforce.com/s/articleView?id=sf.os_omnistudio_naming_conventions.htm&language=en_US&type=5) |
| Data calls | Use Integration Procedures for all data calls; not too many per procedure | [IP Best Practices](https://help.salesforce.com/s/articleView?id=xcloud.os_integration_procedure_best_practices_54721.htm&language=en_US&type=5) |
| Similar procedures | Consolidate; pass a variable or add conditional steps | [Trailhead: Configure IPs](https://trailhead.salesforce.com/content/learn/modules/omnistudio-integration-procedure-fundamentals/configure-your-integration-procedure) |
| Reusable procedure | No extra per-caller transform when the need is only relabeling | [Trailhead: Configure IPs](https://trailhead.salesforce.com/content/learn/modules/omnistudio-integration-procedure-fundamentals/configure-your-integration-procedure) |
| Set Values | Calculations, conditional values, static values only | [Trailhead: Configure IPs](https://trailhead.salesforce.com/content/learn/modules/omnistudio-integration-procedure-fundamentals/configure-your-integration-procedure) |
| Debug items | Remove or turn off before migrating to production | [Trailhead: Configure IPs](https://trailhead.salesforce.com/content/learn/modules/omnistudio-integration-procedure-fundamentals/configure-your-integration-procedure) |
| New version | No impact on callers; one active per Type and Sub Type | [Trailhead: Configure IPs](https://trailhead.salesforce.com/content/learn/modules/omnistudio-integration-procedure-fundamentals/configure-your-integration-procedure) |

## Check yourself

- Why should the Type of an Integration Procedure start with a lower-case letter?
- Why remove debug statements before migrating a procedure to production?
- When should a calling Omniscript use Invoke Mode Non-Blocking?
- How many versions of one Type and Sub Type can be active at once?

## Sources

- [Configuring Integration Procedures for Efficiency](https://trailhead.salesforce.com/content/learn/modules/omnistudio-integration-procedure-fundamentals/configure-your-integration-procedure)
- [Integration Procedure Best Practices](https://help.salesforce.com/s/articleView?id=xcloud.os_integration_procedure_best_practices_54721.htm&language=en_US&type=5)
- [Omnistudio Naming Conventions](https://help.salesforce.com/s/articleView?id=sf.os_omnistudio_naming_conventions.htm&language=en_US&type=5)
- [Omnistudio Integration Procedures](https://help.salesforce.com/s/articleView?id=xcloud.os_omnistudio_integration_procedures_48334.htm&language=en_US&type=5)
- [Response Action for Integration Procedures](https://help.salesforce.com/s/articleView?id=xcloud.os_response_action_for_integration_procedures_54655.htm&language=en_US&type=5)
- [Improve Performance by Using Caching](https://help.salesforce.com/s/articleView?id=sf.os_cache_for_dataraptors_and_integration_procedures_54751.htm&language=en_US&type=5)

## About the full unit

The "Core concepts", "Exam traps" and "Worked scenario" sections of this unit, its 5 linked practice questions, and unlimited timed mock exams are included with the Omnistudio Developer pack (USD $19): https://www.certifyforce.com/practice-exams
