Send HTTP request

The Send HTTP request action connects your workflow to a web server or URL and sends HTTP requests.

After Flow sends your HTTP request, it waits for a maximum of 30 seconds for an HTTP response code. If Flow hasn't received a response after 30 seconds, then it closes the connection to your app. Later, it retries the request.

Fields

The Send HTTP request action contains the following fields.

Fields used in the Send HTTP request action.
FieldDescription
HTTP methodThe method of HTTP request to send. The Send HTTP request action supports the following methods:

  • Get - Sends a request for information from the server.
  • Delete - Removes a resource from the server.
  • Head - Retrieves the HTTP response headers of the server.
  • Options - Retrieves the options and features that are supported by the server.
  • Patch - Partially updates a resource on the server.
  • Put - Updates a resource on the server.
  • Post - Creates or replaces a resource on the server.
URLThe URL of the server to which the HTTP request is sent.
HeadersThe key and value pair for the HTTP request. Multiple key-value pairs can be entered.
BodyThe content to be sent to the server.

Triggers

The Send HTTP request action can be used in any workflow.

Examples

Call the Shopify GraphQL Admin API

In this example, you will use Flow to edit a product title by calling the productUpdate API.

Before you begin, do the following:

Then, follow these steps in Flow:

  1. Choose the Product status updated trigger, which allows you to test this workflow by changing the status on a product.
  2. Add Send HTTP Request to your workflow and connect it to the trigger.
  3. Open the configuration panel by clicking the Send HTTP Request step.
  4. In the HTTP Method field, enter POST.
  5. In the URL field, enter https://admin.shopify.com/store/shopname/api/2023-01/graphql.json substituting your shop domain and desired API Version.
  6. In the Headers section, enter a Key of X-Shopify-Access-Token and Value of YOUR_API_SECRET_KEY that you obtained in the first step.
  7. In the Headers section, enter a second header with Key of Content-Type and Value of application/json.
  8. In the Body section, enter the following:
{"query": "mutation { productUpdate(input: {id: \"{{ product.id }}\", title: \"{{product.title}}-edited\"}) { product { id } } }"}
  • This code adds -edited to the end of your title
  • Spaces and newlines are meaningful to the Liquid editor, so avoid adding or removing spaces. Also, except for outputting Liquid, avoid collapsing brackets like {{ and }} because they are reserved for Liquid variables.
  1. Configure the rest of the workflow and activate it.
  2. Test it by changing the status on a Product from Draft to Active or vice versa.

Call an External API

Example of a workflow that sends a POST HTTP request when an order is paid

In this example workflow, a POST HTTP request is sent to a server when an order is paid.

Response codes

The following table describes how Flow processes the HTTP response code after it receives a response.

How Flow processes HTTP response codes.
HTTP response codeHow Flow processes the response code
2XX or 3XX SuccessFlow marks the HTTP request as a success, and performs subsequent actions in the workflow.
429 or 5XX ErrorFlow automatically retries the action for up to 24 hours until it receives a different response code or it times out.
Other response codeIf your app returns a code that isn't described in this table or it times out while retrying actions, then Flow marks the HTTP request as failing. Subsequent workflow actions are not taken.

Limitations

The Send HTTP request action has the following limitations:

  • The action doesn't return data into the Flow environment as a result of the mutation.
Can't find answers you're looking for? We're here to help you.