---
schema_version: "1"
id: d33d5b0e7165c98234a9a5607b5837a48dab83c1c021759069b39113b3e26b59
title: Integration Procedure Best Practices (Managed Package)
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/xcloud/264-0-0/os_integration_procedure_best_practices.md
canonical_url: https://help.salesforce.com/s/articleView?id=xcloud.os_integration_procedure_best_practices.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: b269f33d143fae07e27c620dfdbb72508a3198c24d411fb600ba3604d5bec2d2
description: For the managed package runtime, to maximize the benefits of Integration Procedures, follow the best practices whenever possible.
products:
  - Omnistudio
release: "264"
---
# Integration Procedure Best Practices (Managed Package)

For the managed package runtime, to maximize the benefits of Integration Procedures, follow the best practices whenever possible.

![Managed Package app icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-omnistudio_for_managed_packages-264-0-0-production-enus/aa2554ec-624a-4ee6-8da4-6435670e6e62/resources-global/_corporate/images/managedpackageicon.png) This information is for Omnistudio for Managed Packages. For Omnistudio on standard runtime, see [Omnistudio Help](https://help.salesforce.com/s/articleView?id=xcloud.os_omnistudio_standard.htm&language=en_US).

- Use Integration Procedures for all data calls to Salesforce.
- To avoid SOQL limit errors, don't put too many data calls in the same Integration Procedure.
- To maximize reuse and performance, use a modular approach to implement a small group of related functions in each Integration Procedure.
- Use a [Response Action for Integration Procedures (Managed Package)](https://help.salesforce.com/s/articleView?id=xcloud.os_response_action_for_integration_procedures.htm&release=264.0.0&type=5 "For the managed package runtime, the Response Action ends an Integration Procedure and returns data to the entity that called it. It can also add data to the data JSON or end conditionally. Response Actions are useful for debugging Integration Procedures.") to trim the data and only return what is needed. For specific trimming strategies, see [Manipulate JSON with the Send/Response Transformations Properties (Managed Package)](https://help.salesforce.com/s/articleView?id=xcloud.os_manipulate_json_with_the_send_response_transformations_properties.htm&release=264.0.0&type=5 "For the managed package runtime, specify and transform the input and output JSON of Omniscripts or Integration Procedures with the Send and Response Transformation properties. The Send properties transform the input; the Response properties transform the output.").
- To allow an Integration Procedure to exit early under appropriate conditions, use multiple Response Actions with different Execution Conditional Formulas.
- Use caching to store frequently accessed, infrequently updated data. See [Cache for Omnistudio Data Mappers (Managed Package)](https://help.salesforce.com/s/articleView?id=xcloud.os_cache_for_dataraptors_and_integration_procedures.htm&release=264.0.0&type=5 "For the managed package runtime, Omnistudio offers multiple caching options to improve performance and minimize unnecessary data processing in Data Mappers. The two primary user-configurable caching types are Org Cache and Session Cache, which are available in the Data Mapper designer. These caching mechanisms are part of the Salesforce Platform Cache and are implemented through Vlocity Cache in Omnistudio with managed package runtime. Each serves a distinct purpose and comes with specific configuration considerations.").
- To run data operations asynchronously, call Integration Procedures using these settings:
    
    - Use Future — Use when the calling Omniscript or Integration Procedure doesn't need a response and completion time isn’t critical.
    - Invoke Mode: Fire and Forget — Use Invoke Mode instead of Use Future when the calling Omniscript must invoke the Integration Procedure immediately.
    - Invoke Mode: Non-Blocking — Use to run the Integration Procedure immediately while continuing the user interaction of the calling Omniscript. A response is returned when the Integration Procedure is complete.
    
    ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-omnistudio_for_managed_packages-264-0-0-production-enus/aa2554ec-624a-4ee6-8da4-6435670e6e62/images/icon_note.png)
    
    Note When an Omniscript invokes an Integration Procedure asynchronously, the Integration Procedure continues running if the user goes to the next step, but not if the user navigates away from the Omniscript.
    
    For more information about these settings, see [Common Action Element Properties (Managed Package)](https://help.salesforce.com/s/articleView?id=xcloud.os_common_action_element_properties.htm&release=264.0.0&type=5 "For the managed package runtime, Action elements can be either rendered as a button when placed in a Step or Block or run remotely if placed between steps. In either case, you can specify a redirect page, where the user can proceed to the next Step or Action, or if a button, back to the source Step."), [Integration Procedure Action (Managed Package)](https://help.salesforce.com/s/articleView?id=xcloud.os_integration_procedure_action.htm&release=264.0.0&type=5 "For the managed package runtime, invoke an Integration Procedure to retrieve Salesforce data and external data."), and [Integration Procedure Action for Integration Procedures (Managed Package)](https://help.salesforce.com/s/articleView?id=xcloud.os_integration_procedure_action_for_integration_procedures.htm&release=264.0.0&type=5 "For the managed package runtime, the Integration Procedure Action runs a subordinate Integration Procedure.").

To determine whether an Omnistudio Data Mapper or an Integration Procedure is best for your use case, see [Omnistudio Data Mapper or Integration Procedure? (Managed Package)](https://help.salesforce.com/s/articleView?id=xcloud.os_dataraptor_or_integration_procedure.htm&release=264.0.0&type=5 "For the managed package runtime, Data Mappers read or write Salesforce SObject data or perform single-step data structure transformations. Integration Procedures can interact with many types of data, including REST APIs and Apex classes, and process it in multiple steps. For some use cases, a single Data Mapper is sufficient. Integration Procedures usually call one or more Data Mappers and are more flexible and powerful. Use these guidelines to help you determine which to build.").