---
schema_version: "1"
id: faa1b319553e073924608a09db3a67956bfca823500af12c2202c460f4815835
title: Retrieve Data with an Integration Procedure in an Omniscript
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_12506.md
canonical_url: https://help.salesforce.com/s/articleView?id=xcloud.os_integration_procedure_action_12506.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 4e936d080a2805a21643b16d6bff8634e27737bec2f3ba61327473b92a71ac29
description: From an Omniscript, call an Integration Procedure to retrieve Salesforce data and external data. You can run multiple actions as a headless service (lacking a UI) through JavaScript or Apex Service.
products:
  - Omnistudio
release: "264"
---
# Retrieve Data with an Integration Procedure in an Omniscript

From an Omniscript, call an Integration Procedure to retrieve Salesforce data and external data. You can run multiple actions as a headless service (lacking a UI) through JavaScript or Apex Service.

Before you begin, create an [Integration Procedure](https://help.salesforce.com/s/articleView?id=xcloud.os_omnistudio_integration_procedures_48334.htm&release=264.0.0&type=5 "Use Omnistudio Integration Procedures to declaratively automate data interactions between Salesforce and external third-party applications. Integration Procedures handle complex data transformations, API calls, and event-driven automation, and they can execute multiple actions in a single server call.") to handle Omniscript data.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-xcloud-omnistudio-264-0-0-production-enus/f526eaa8-ae05-487a-8944-4bb99b0b78ac/images/icon_note.png)

Note When you add the same Integration Procedure action to two or more Omniscripts that have a parent-child relationship, set the values in the parent Omniscript, even if the value is intended for use in the child Omniscript.

1. After adding an Integration Procedure element, in the remote properties, enable the Integration Procedure's Queueable Chainable settings:
    
    <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="d107882e59">
                  <p style="margin-bottom:0;">Property</p>
                </th>
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d107882e65">
                  <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="d107882e59 ">
                  <p>
                    <strong class="uicontrol">Future Method</strong>
                  </p>
                  <p style="margin-bottom:0;"><strong class="uicontrol">Use Future</strong> (in the designer for a managed package)</p>
                </td>

                <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d107882e65 ">
                  <p style="margin-bottom:0;">Specifies that the Integration Procedure runs asynchronously, as a&nbsp;Salesforce
                    future method, which can return no data to the calling Omniscript.</p>
                </td>

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

                <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d107882e65 ">
                  <p style="margin-bottom:0;">Enables the Chainable settings of the subordinate Integration Procedure.</p>
                </td>

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

                <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d107882e65 ">
                  <p style="margin-bottom:0;">Enables a subordinate Integration Procedure that calls long-running actions
                    to use Apex continuations.</p>
                </td>

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

                <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d107882e65 ">
                  <p style="margin-bottom:0;">Enables chainable steps in the subordinate Integration Procedure to
                    start&nbsp;queueable&nbsp;jobs.</p>
                </td>

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

                <td data-label="Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d107882e65 ">
                  <p style="margin-bottom:0;">Enables the Queueable Chainable settings of the Integration Procedure.</p>
                </td>

              </tr>
            </tbody>
          </table>
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="d107882e195">
                  <p style="margin-bottom:0;">Key</p>
                </th>
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d107882e201">
                  <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="d107882e195 ">
                  <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="d107882e201 ">
                  <p style="margin-bottom:0;">true</p>
                </td>

              </tr>
            </tbody>
          </table>
3. Use the Extra Payload property to send additional key-value pairs to the Integration Procedure as input data.
4. Specify any additional Integration Procedure Action properties you need.
5. Use the Send/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](https://help.salesforce.com/s/articleView?id=xcloud.os_manipulate_json_with_the_send_response_transformations_properties_22367.htm&release=264.0.0&type=5 "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.").
6. Select the response behavior of the action by selecting an **Invoke Mode**.
    
    - Default — Blocks the UI with a loading spinner.
    - Non-Blocking — Runs asynchronously, and the response is applied to the UI. Pre and Post Omnistudio Data Mapper transforms and large attachments aren’t supported. When Invoke Mode is set to non-blocking, elements using default values won’t receive the response because the element loads before the response returns. To map the response to an element, you must set Response JSON Node to VlocityNoRootNode and Response JSON Path to the name of the element.
    - Fire and Forget — Runs asynchronously with no callback to the UI. Pre and Post Data Mapper transforms and large attachments aren’t supported. A response will still appear in the debug console but won’t be applied to the Data JSON.
7. 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="d107882e343">
                  <p style="margin-bottom:0;">Property</p>
                </th>
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d107882e349">
                  <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="d107882e343 ">
                  <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="d107882e349 ">
                  <p style="margin-bottom:0;">VlocityNoRootNode</p>
                </td>

              </tr>
              <tr class="">
                <td data-label="Property" class="slds-cell-wrap" style="vertical-align:top;" headers="d107882e343 ">
                  <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="d107882e349 ">
                  <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](https://help.salesforce.com/s/articleView?id=xcloud.os_manipulate_json_with_the_send_response_transformations_properties_22367.htm&release=264.0.0&type=5 "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-264-0-0-production-enus/f526eaa8-ae05-487a-8944-4bb99b0b78ac/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.