---
schema_version: "1"
id: 8dce45bc57d2736cde8f92aa1fcd5798c17d344012e4034d0529c0240b5e9b02
title: Asynchronous Integration with a Downstream System
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/ind/264-0-0/comms_t_asynchronous_integration_with_a_downstream_system_236468.md
canonical_url: https://help.salesforce.com/s/articleView?id=ind.comms_t_asynchronous_integration_with_a_downstream_system_236468.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: bd69e4d576a25bf6b1a9a61f2943fb5f0b5c818a66d5047d73461816658e7e7d
description: Use asynchronous integration with a downstream system to send a request to that system with the expectation of getting a response sometime in the future, but not immediately.
products:
  - Industry Solutions
  - Cross Cloud
release: "264"
---
# Asynchronous Integration with a Downstream System

Use asynchronous integration with a downstream system to send a request to that system with the expectation of getting a response sometime in the future, but not immediately.

For example, you may use a callout orchestration item type to send a request to a workforce management system to have a technician to do some work, such as an installation, on a customer's premises. Order Management does not know when the technician will complete this work, and therefore must wait for a response indicating completion of the work at future point in time.

As another example, a request is sent to a delivery system to ship an order item to a customer. The shipment preparation process may take from a few days to a few weeks. The Order Management system needs to receive a confirmation from the delivery system that the item has been shipped to further provision the order.

If the asynchronous response for the event is short, you can use the same callout to wait for the response. However, if the callout takes a long time, such as days, then it is best to use a push event to receive the response.

For more information on orchestration item types, including push events, see [Orchestration Item TypesOrchestration Item Types](https://help.salesforce.com/s/articleView?id=ind.comms_t_orchestration_item_types_231420.htm&release=264.0.0&type=5 "Orchestration plans use orchestration item types to define actions for orchestration items. Actions are triggered when an item reaches the Ready state.").

## Using the XOMAsyncSystemInterface

The asynchronous integration uses the XOMAsyncSystemInterface interface with the Callout orchestration item and leverages [DataRaptor-Based IntegrationIntegrating with a Downstream System Using DataRaptor](https://help.salesforce.com/s/articleView?id=ind.comms_t_integrating_with_a_downstream_system_using_dataraptor_236634.htm&release=264.0.0&type=5 "Use DataRaptors to transform the JSON payload from an external system to Vlocity’s system, and vice versa.") to create a JSON request to a downstream system.

The callbackUrl parameter is automatically added to the JSON by the system interface implementation. The downstream system uses this parameter to call back to Industries Order Management with the response.

The callbackUrl includes the following properties:

- orgNamespace
- orchItemId

For example,/services/apexrest/<orgNamespace>/asyncCallback/<orchItemId>

When the downstream system receives a request, it acknowledges the receipt with an HTTP response:

- HTTP status code 200 — the request has succeeded
- HTTP status code 500 — the request has failed with an Internal Server Error.

Once the downstream system processes the request, it notifies Industries Order Management of the completion of the operation. The response is processed using the DataRaptor and the orchestration item is marked complete.

XOMAsyncSystemInterface supports an additional REST-based interface: XOMCallbackRESTService. The downstream system responds to Order Management through the XOMCallbackRESTService. To facilitate this, the following additional input parameters are provided to Vlocity DataRaptor Bundle if is specified on the OrchestrationItemDefinition:

- callbackUrl: Tells the downstream system to notify Order Management about the completion of the operation by posting the response to the callbackUri. The response is processed using DataRaptor support enhancements in DefaultSystemInterface functionality.
- orchItemId: Customizes the callbackUri to use custom REST service
- orgNamespace: Customizes the callbackUri to use custom REST service

Using asynchronous integration with a downstream system involves:

- [Create a System Interface for Integration](https://help.salesforce.com/s/articleView?id=ind.comms_t_create_a_system_interface_for_integration_235842.htm&release=264.0.0&type=5 "The System Interface defines the endpoint for an API URL that points to an external system. For example, /activate or /reserve. When you create a callout, you point to the system interface.")
- [Custom Asynchronous Callouts](https://help.salesforce.com/s/articleView?id=ind.comms_t_custom_asynchronous_callouts_236178.htm&release=264.0.0&type=5 "Configure a callout that waits for a response from a third-party application.")
- [Creating DataRaptor Bundles for Asynchronous IntegrationCreating DataRaptor Bundles for Asynchronous Integration](https://help.salesforce.com/s/articleView?id=ind.comms_t_creating_dataraptor_bundles_for_asynchronous_integration_236521.htm&release=264.0.0&type=5 "The asynchronous integration leverages DataRaptor-based integration to create a JSON payload for a downstream system.")
- [Creating a Callout Orchestration Item for Asynchronous IntegrationCreating a Callout Orchestration Item for Asynchronous Integration](https://help.salesforce.com/s/articleView?id=ind.comms_t_creating_a_callout_orchestration_item_for_asynchronous_integration_237255.htm&release=264.0.0&type=5 "To create a callout orchestration item definition for asynchronous integration:")

For long response times, see [Using Asynchronous Callouts for Long Response TimesUsing Asynchronous Callouts for Long Response Times](https://help.salesforce.com/s/articleView?id=ind.comms_t_using_asynchronous_callouts_for_long_response_times_236544.htm&release=264.0.0&type=5 "Asynchronous callouts are used when an external fulfillment system isn't expected to respond immediately.").

- **[Creating DataRaptor Bundles for Asynchronous Integration](https://help.salesforce.com/s/articleView?id=ind.comms_t_creating_dataraptor_bundles_for_asynchronous_integration_236521.htm&release=264.0.0&type=5)**  
    The asynchronous integration leverages DataRaptor-based integration to create a JSON payload for a downstream system.
- **[Using Asynchronous Callouts for Long Response Times](https://help.salesforce.com/s/articleView?id=ind.comms_t_using_asynchronous_callouts_for_long_response_times_236544.htm&release=264.0.0&type=5)**  
    Asynchronous callouts are used when an external fulfillment system isn't expected to respond immediately.
- **[Overview of Extending the Asynchronous System Interface](https://help.salesforce.com/s/articleView?id=ind.comms_t_overview_of_extending_the_asynchronous_system_interface_236582.htm&release=264.0.0&type=5)**  
    Services and customers can extend the functionality of the XOMAsyncSystemInterface class to add more functionality, such as applying logic to determine if a response is good or bad.
- **[Extend the Asynchronous System Interface](https://help.salesforce.com/s/articleView?id=ind.comms_t_extend_the_asynchronous_system_interface_236590.htm&release=264.0.0&type=5)**  
    You can extend the functionality of the XOMAsyncSystemInterface class to add more functionality, such as applying logic to determine if a response is good or bad.