HTTP Request

"This step sends HTTP requests, saving response data as variables and enabling advanced workflow actions, available in Business plans and above."

This Step enables sending HTTP Requests and saving their responses as Variables.

This Step is only available for Business plans and above.

Configuration

There are two key configurations in the HTTP Request Step:

HTTP Request Method

The specific method required for the request. Choose the appropriate method from the dropdown list.

URL

In the URL field, enter the URL endpoint of the external API to retrieve data. To include Variables, use the "{{}}" prefix to support the interpolation of static text and Variables.

Please note that both respond.io and white-label domains are blacklisted. Sending an API call to these domains is not allowed, as it could cause looping issues.

Body

To ensure correct decoding by the request recipient, expand the Body section and include a body along with the Content-Type Header.

Headers

In the Header section, you can add headers to the HTTP request in pairs. The key represents the header name, and the value represents the header value. You can use Variables as headers by adding the prefix "{{}}". However, remember that only up to 10 headers are allowed.

Response Mapping

For JSON API responses with key-value pairs, you can save specific response elements as Variables. In the Response Mapping section, input the key of the JSON object on the left and assign a name to the variable on the right. Keep in mind that only JSON responses can be saved, and you can have a maximum of 10 response mapping settings.

Examples:

To save a response in different formats, fill in the JSON key corresponding to the data you want to save.

{
    "name": "Jason",
    "zip_codes": "12345",
    "phone": "123123"
}

To save the phone number from the above response, use {{contact.phone_number}} as the JSON key.

{
    "custom_fields": {
        "firstName": "John",
        "lastName": "Doe",
        "locale": "en_GB",
        "timezone": "5",
        "gender": "male",
        "phone": "123123",
        "email": "info@bevatel.com",
        "customerid": "1"
    },
    "created_at": 1575618542
}

To save the phone number from the above response, use {{custom_fields.phone}}

     {
        "data": {
            "id":"1776025372480910",
            "contacts" : [
                {
                    "firstName":"John",
                    "lastName":"Doe",
		    "locale": "en_GB"
                },
                {
                    "firstName":"Jane",
                    "lastName":"Doe",
		    "locale": "en_GB"
                }
	    ]
        }
    }

To save the first name 'Jane' from the above response, use {{data.contacts[1].firstName}}.

Save Response Status as Variable

To save the response status from the HTTP request as a Variable, turn ON the Save Response Status as Variable toggle. Then, name the Variable in the field provided.

How It Works

When activated, this step will send an HTTP request to the specified URL, using the defined body and header.

You can guide the Workflow based on the response status. For instance, you can create a Branch for "status code is equal to 200". If any other response status code is received, a Jump Step could return Contacts to the HTTP Request Step. Alternatively, the Contact could be directed to the Failure Branch if the branch conditions are not met. If there are no steps set up under the Failure Branch, the Workflow will conclude.

Potential Failure

To avoid potential failures in executing HTTP requests, ensure the following conditions are met:

  • Use the correct HTTP method and Content-Type Header.

  • Ensure the Content-Type is valid.

  • Exclude the port number from the URL.

  • Avoid using a self-signed certificate in the URL.

  • Verify that the authorization is valid.

  • Ensure our IP addresses (52.74.35.155, 18.138.31.163, 54.169.155.20) are not blocked.

If any of the above conditions are not met, the Contact will skip this step and proceed with the remaining journey.

When verifying HTTP request outputs with dynamic variables, remember that Variables without a value will return as null and undefined.

Best Practices

Here are some best practices for this step you can follow to optimize your workflow:

When the HTTP Request is successful

  • First, save Response Status as Variable. Then try one of the following methods::

    • Branch Step: You can add a Branch Step to check on the HTTP request status. If it is 200, the HTTP Request Step is successful. If not, you can send an alert to the manager indicating that the HTTP request was unsuccessful.

    • Google Sheet: You can save the Response Status in a Google sheet to easily see if the status was successful or not.

    • Comment: Add the Response Status as a comment to keep track and review errors more efficiently.

When the HTTP Request fails

  • First, save Response Status as Variable. Then try one of the following methods:

    • Use the Wait Step to automatically retry if the Response Status is unsuccessful. You can also do this with the Jump Step to jump back to the HTTP Request Step to try again.

    • Create a comment to record the HTTP Request error. You can also save the Contact details and tag the person(s) in charge at the same time.

    • Use the Google Sheet Step to add the Contact and HTTP Request error details to a sheet for monitoring and reviewing.

    • Assign the task to a specific user to initiate another process within the workflow and try again.

Suggested Use Cases

Here are some ways you can use the HTTP Request Step:

  • Route VIP Contacts: Utilize the HTTP Request Step to fetch Contact details from a data warehouse like a CRM. This enables you to identify VIP Contacts, allowing for a personalized customer experience and distinguishing them from non-VIP Contacts.

Last updated