The Send HTTP Request step calls a URL when a workflow reaches it. Use it to pass booking details to your own tools, a spreadsheet service or any system that accepts web requests. This step needs the Ultimate plan.
Before you start
- You need the Super Administrator or Owner role.
- Your salon needs the Ultimate plan.
- You need the URL of the system you want to call, and any key it asks for.
- 1
Step 1 of 5
Add the step
In the editor, click Add next step and choose Send HTTP Request. Click the new step to open its settings.
- 2
Step 2 of 5
Set the method and URL
Pick a Method: GET, POST, PUT, PATCH or DELETE. Enter the URL, starting with https:// or http://. The URL can include variables, for example
https://example.com/clients/{{ $event.data.object.client.id }}. - 3
Step 3 of 5
Add a body
For POST, PUT, PATCH and DELETE, set Content Type to application/json and write the Body as JSON. Click Insert Variable to add values.
When a variable is the whole value of a JSON field, it keeps its type. For example, in
{"appointment": "{{ $event.data.object }}"}the appointment is sent as an object, not as text. Formatting and spacing don't matter. - 4
Step 4 of 5
Add headers if needed
Click Show Advanced Options, then Add Header for each header, such as an authorization key. Enter a Header name and a Header value.
- 5
Step 5 of 5
Save
Click Save in the dialog, then Save at the top of the editor.
You will see:The step shows the method and the URL, for example Send HTTP POST Request to your URL.
Use the response
The next steps can read the response through $previousNode:
{{ $previousNode.response.status }}: the status code, like 200{{ $previousNode.response.statusText }}: the status text, like OK{{ $previousNode.response.body }}: the response body{{ $previousNode.response.headers }}: the response headers
For example, add a Conditional Split that checks {{ $previousNode.response.status === 200 }}.
Limits
Requests over a limit aren't sent. The step is skipped and the run continues.
Requests to private or internal network addresses, like localhost, are blocked.
When a run fails
An error status from the other system, like 404 or 500, doesn't fail the run. The response is saved and the next step runs. Check the status with a Conditional Split if it matters.
The run fails, and stops, when the request can't be made at all: the system doesn't respond within 5 seconds, the address can't be reached, the URL is invalid or it points to a blocked address. The run shows as Failed in History.
Common questions
No. The only supported content type for a body is application/json.