Inputs
Outputs
Reference the response body downstream as
{{ steps.send_http_request.response_body }}, the status code as {{ steps.send_http_request.status_code }}, and the success flag as {{ steps.send_http_request.success }}.
Behavior
The block sends a single request and waits for the response before the workflow continues. The request times out after 2 minutes. If the endpoint does not respond within that window, the block fails instead of hanging the run. The response body comes back as text. To use individual fields from it downstream, follow the block with Parse JSON. That block converts the text into typed variables, which are named values you can reuse later in the workflow. The Send HTTP request block does not parse the response for you. The success flag tells you whether the request reached the endpoint and got a response. Check it before you act on the body. The flag does not tell you whether the response was the one you wanted. An endpoint can return a200 status with an error message in the body, or a 4xx status with a body that explains the problem. So gate any record write on the success flag. Where the API uses status codes meaningfully, gate on the status code as well.
Gotchas
- The response arrives as raw text, not fields. The block returns the body as a string. On its own,
{{ steps.send_http_request.response_body }}cannot be mapped field by field. Add a Parse JSON block after it, then reference the parsed outputs downstream. - A request that never returns fails at 2 minutes. A slow or unresponsive endpoint holds the run open until the 2-minute timeout, then fails the block. Point the URL at endpoints that respond quickly. Branch on the success flag so a timeout does not silently skip later writes.
- Writing the body without checking success corrupts records. A failed call can still return a body. Writing that body back overwrites good data with an error message. Add an If block on
{{ steps.send_http_request.success }}and only write when it istrue. - A missing Content-Type drops the body. Requests that send a payload need a Content-Type header. Without it, the endpoint may ignore or reject the body. Set
Content-Typetoapplication/jsonwhenever the Body field is populated.
Examples
Enriching a new company from an external API
This workflow calls an enrichment provider when a company gains a domain. It then parses the response and updates the record. The example sends aGET request with the domain in the path and an API key in the header.
The block returns
200 with a JSON body such as {"name":"Acme","employees":240}. A following Parse JSON block extracts employees, and an Update record block writes it to the company.
Posting a deal to an external billing system
This workflow notifies a billing service when a deal reaches closed-won. The example sends aPOST request with a JSON body built from deal variables.
201 with the new account’s ID in the body, and {{ steps.send_http_request.success }} is true. An If block confirms success before an Update record block stores the returned ID on the deal.
Handling a failed enrichment call
This example shows the edge case. The enrichment endpoint is down and the request times out. The configuration matches the first example, but the endpoint does not respond within 2 minutes.
The block fails at the 2-minute timeout and
{{ steps.send_http_request.success }} is false. The downstream If branch routes to a Create task block for a manual follow-up, instead of writing an empty enrichment result over the company.