---
schema_version: "1"
id: 57dc68ec326e0ba9a76f567e74558783a05caa503d476650a4c8fa0db4691759
title: Integration Procedure Action (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_action.md
canonical_url: https://help.salesforce.com/s/articleView?id=xcloud.os_integration_procedure_action.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 660f1f67bc556e84ac4008af96b197b054e96eee0cc93e85b95426148da84f1a
description: For the managed package runtime, invoke an Integration Procedure to retrieve Salesforce data and external data.
products:
  - Omnistudio
release: "264"
---
# Integration Procedure Action (Managed Package)

For the managed package runtime, invoke an Integration Procedure to retrieve Salesforce data and external data.

![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).

Before You Begin

Create an [Integration Procedure](https://help.salesforce.com/s/articleView?id=xcloud.os_omnistudio_integration_procedures_48334.htm&language=en_US) to handle Omniscript data.

1. Drag the Integration Procedure Action into the Omniscript's structure panel.
2. To select the Integration Procedure to be called, click in the **Integration Procedure** field, and select from the list. You can type in the field to filter the list.
3. Use the Response Transformations properties to specify the input and to trim or rename the output JSON.
    
    - Send JSON Path — Specifies the JSON node that contains the input for the Integration Procedure. This is typically the name of a previous element in the Omniscript.
    - Send JSON Node — Renames the JSON node that contains the input for the Integration Procedure. This is typically the name of one of the Integration Procedure's input parameters.
    - Response JSON Path — Specifies the JSON node that contains the output to return to the Omniscript. By default, all Integration Procedure data is returned.
    - Response JSON Node — Renames the JSON node that contains the output to return to the Omniscript. This is typically the name of a subsequent element in the Omniscript.
    
    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.").
4. (Optional) Use the Extra Payload property to send additional key/value pairs to the Integration Procedure as input data.
5. Specify any additional Integration Procedure Action properties you need.
6. (Optional) Enable the Integration Procedure's Queueable Chainable settings by taking these steps:
    
    1. Click the **Is Queueable Chainable?** checkbox to enable the settings.
    2. In **Remote Options**, add this Key-Value pair:
        
        <table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
                <colgroup>
                  <col>
                  <col>
                </colgroup>
                <thead class="slds-text-title_caps ">
                  <tr class="">
                    <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d151890e160">
                      <p style="margin-bottom:0;">Key</p>
                    </th>
                    <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d151890e166">
                      <p style="margin-bottom:0;">Value</p>
                    </th>
                  </tr>
                </thead>
                <tbody>
                  <tr class="">
                    <td data-label="Key" class="slds-cell-wrap" style="vertical-align:top;" headers="d151890e160 ">
                      <p style="margin-bottom:0;">
                        <strong class="uicontrol">useQueueableApexRemoting</strong>
                      </p>
                    </td>

                    <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d151890e166 ">
                      <p style="margin-bottom:0;">true</p>
                    </td>

                  </tr>
                </tbody>
              </table>
7. (Optional) When Invoke Mode is set to non-blocking, elements using default values don’t receive the response because the element loads before the response returns. You must configure these properties to map the response to an element:
    
    <table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
            <colgroup>
              <col>
              <col>
            </colgroup>
            <thead class="slds-text-title_caps ">
              <tr class="">
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d151890e218">
                  <p style="margin-bottom:0;">Property</p>
                </th>
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d151890e224">
                  <p style="margin-bottom:0;">Value</p>
                </th>
              </tr>
            </thead>
            <tbody>
              <tr class="">
                <td data-label="Property" class="slds-cell-wrap" style="vertical-align:top;" headers="d151890e218 ">
                  <p style="margin-bottom:0;">
                    <strong class="uicontrol">Response JSON Node</strong>
                  </p>
                </td>

                <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d151890e224 ">
                  <p style="margin-bottom:0;">VlocityNoRootNode</p>
                </td>

              </tr>
              <tr class="">
                <td data-label="Property" class="slds-cell-wrap" style="vertical-align:top;" headers="d151890e218 ">
                  <p style="margin-bottom:0;">
                    <strong class="uicontrol">Response JSON Path</strong>
                  </p>
                </td>

                <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d151890e224 ">
                  <p style="margin-bottom:0;">The name of the Omniscript Element receiving the value.</p>
                </td>

              </tr>
            </tbody>
          </table>
    
    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.").

![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.

![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 `RollbackIPChanges` is enabled in Omni Interaction Configuration and an Integration Procedure fails with an exception, the response JSON nests the error at `result.error` instead of at the root level. Because the root-level `error` node is absent, the Omniscript doesn't detect the failure and continues executing subsequent steps. To handle errors in this scenario, use one of these workarounds:

- Add a Response Action to catch the error from the nested `result.error` path.
- Add a try-catch block inside the Integration Procedure to handle the exception before it propagates.

- **[Integration Procedure Action Properties (Managed Package)](https://help.salesforce.com/s/articleView?id=xcloud.os_integration_procedure_action_properties.htm&release=264.0.0&type=5)**  
    For the managed package runtime, this page contains information on Integration Procedure Action Properties.