The HTTP request action lets a scenario call any external URL mid-flow: push contact data to your CRM, notify a Slack channel, kick off a Make or Zapier workflow, or talk to any service with an API. If it has a URL you can reach, you can connect it. For a shorter intro, see Integration Actions: Calendly, Shopify, HTTP Requests. This article covers the full setup. The action is available on every plan.
Adding an HTTP request to a scenario
In the flow builder, click + Add a step and go to Integrations → Send HTTP request.
Configure the request:
Method: pick what the external API expects.
GETreads data from the service.POSTsends data (the most common).PUT/PATCHupdate an existing record.DELETEremoves a record.
When in doubt, use POST. Most webhook endpoints and automation tools expect it.
URL: the endpoint to call. Insert contact and trigger variables with the (x) button, for example:
https://api.yourcrm.com/contacts/{{contact.id}}/update
Headers: click Add Header for anything the endpoint requires, like an authentication token or Content-Type: application/json.
Body: for write methods (POST, PUT, PATCH, DELETE), choose how to send the data with the Key/Value vs JSON toggle:
Key/Value: click Add Parameter and add each field as a key and a value. Both can use variables, for example
contact_id→{{contact.id}}andstage→Lead. Turn on Encode parameter values if the endpoint expects URL-encoded form data.JSON: switch to JSON mode and write the raw body yourself, like
{ "contact_id": "{{contact.id}}", "stage": "Lead" }. Inrō adds theContent-Type: application/jsonheader for you.
Handling the response
Every HTTP request branches two ways:
If request is successful: the service responded with a 2xx status.
If request fails: the service returned a 4xx or 5xx, or didn't respond.
Always connect both. At a minimum, add the contact to a folder in the failure branch so you can review which requests didn't go through.
Inrō saves the response (status, headers, and body), so later steps can use the data it returned. Read the response body with {{http_request.response.body}}. For the exact paths to other parts of the response, see Variables & Personalisation Guide.
Practical examples
Update a CRM contact at a key step. After a contact pays, add an HTTP request that POSTs to your CRM's API with {{contact.username}} and a status of "Customer". The CRM updates the record on its own.
Trigger a Make or Zapier workflow. POST to a Make or Zapier webhook URL with whatever data you need. The workflow on the other side handles the rest, like sending an email or creating a task.
Check a contact before sending a link. Send a GET to your backend with {{contact.email}} to see if they're already a customer, then use a condition to branch: one message for existing customers, another for new leads.
🐾 Netsuke's Tips
Test with static values first. Confirm the endpoint works and the response looks right, then swap in
{{contact.id}}and other variables.Always handle the failure branch. A silent failure means data didn't send and you'd never know. An "HTTP error" folder collects those contacts so you can follow up by hand.
For simple one-way notifications like a Slack message or a spreadsheet row, a POST to a Make or Zapier webhook is often faster than a direct integration, and you get those platforms' full power on the receiving end.
The action fires once per contact run. If you need to call the same API at different points in a flow, add multiple HTTP request actions where you need them.
What's next?
To start an Inrō scenario from an external app (the reverse direction), see Webhook Triggers: Fire Scenarios from External Apps.



