# Invoke Custom HTTP

Client SDK
Backend API
Mobile approve
SSO
Sub-journey
> Invokes a web service using a custom HTTP request


## Description

This step allows you to incorporate external services as part of your journey flow. For example, your journey can send a backend API call to a legacy IDP system. This allows distributed identity flows, as well as in-flow migrations for existing users.

Configure a [Custom HTTP](/guides/orchestration/external-connections/web_service_function) external connection in **Integration Hub**, then add the configured connection in **Custom HTTP functions**. The connection defines the parameters expected by the web service request, and the step specifies their values using expressions evaluated at runtime.

When initiated, the step calls the services you specify with the evaluated input, and then stores the result from each web service in a variable so it can be accessed in subsequent journey steps. You can also enable custom branches configured on each external connection. For information about configuring custom branches, see [External service integration](/guides/orchestration/concepts/external_service_integration#how-it-works).

## Configuration

| Field | Description |
|  --- | --- |
| **Custom HTTP functions** | Lists the Custom HTTP functions that this step calls. Select the settings icon, then select **+ Add Custom HTTP** to add a function. |
| **Custom HTTP** | The external connection to call. Select a Custom HTTP connector configured in **Integration hub**. |
| **Output Variable** | A name for the variable that stores the result of the external service call. You can use this variable in subsequent journey steps. |
| **Branch Name** (only when **Custom HTTP** is configured) | Name of the custom branch(es) configured on the **Custom HTTP** external connection. This label is also used when the branch type is `Success` or `Warning`. |
| **Behavior** (only when **Custom HTTP** is configured) | Determines whether the journey uses the custom branch:**Disabled**: The step continues to the next step. The custom branch is ignored.**Enabled**: Enables the custom branch, so the journey can follow that branch when its condition is met. |


Journey event data
This step can be configured to record step input and output data, or a custom payload, which is then surfaced in journey events in Journey Analytics for diagnostic purposes. For details, see [Additional data reporting](/guides/orchestration/getting-started/event_reporting).

## Example

Suppose a function called `updateUserDetails` is created that updates an identity store with user profile data. If an onboarding journey collects user details using a form and stores them in a variable called `regForm`, this step can be configured to update those details in the identity store:

![](/assets/invoke_web_service_example1a.e196b6e8a1a8ddbbc0da2b005bab1b0e528257cbee5cbe7e9d33c93bbc1bfe8c.6f9096f8.png)

![](/assets/invoke_web_service_example1b.6c9fffeba85a796e1d9127546f66be9444fefc4d4dfeaff80fa264858211212e.6f9096f8.png)