Add a phone call step to an n8n workflow
Some workflows stall at the same place: somebody has to ring the supplier. With two HTTP Request nodes, that step becomes a task a person completes and your workflow reads back as fields.
What you need
- A HumanCalls workspace and an API key from the dashboard (10 free minutes come with a new workspace).
- In n8n, a Header Auth credential with the name
Authorizationand the valueBearer YOUR_API_KEY.
1. Request the call
Add an HTTP Request node: method POST, URL https://humancalls.ai/v1/calls, your Header Auth credential, and an Idempotency-Key header that is unique to the task (the execution ID works well). Send a JSON body like this:
{
"to": "+12125550100",
"business": "Harbor Supply Co.",
"on_behalf_of": "Acme Robotics",
"goal": "Confirm stock and earliest delivery for SKU 7712",
"max_minutes": 10,
"collect": {
"in_stock": { "type": "boolean", "required": true },
"delivery_date": { "type": "date", "description": "Earliest delivery date" }
},
"delivery": { "mode": "polling" }
}collect names the answers you want and their types: string, number, boolean or date. The response is 202 with the task's id and status. Retrying with the same Idempotency-Key returns the same task instead of creating a second call.
2. Wait, then read the result
A person places the call during the business's opening hours, so build the wait into the workflow. Add a Wait node (15 minutes is a reasonable start), then an HTTP Request node: GET https://humancalls.ai/v1/calls/{{ $json.id }}. Loop back to the Wait node with an IF node until status is one of completed, failed, no_answer, declined or canceled.
{
"status": "completed",
"outcome": { "in_stock": true, "delivery_date": "2026-11-18" },
"summary": "620 units available. Earliest delivery Wednesday.",
"billed_minutes": 4,
"cost_usd": 4
}Branch on outcome like any other data. A required answer the business did not clearly give comes back marked as missing with a note, not guessed.
Webhooks and AI Agent nodes
If you would rather be pushed the result, register a connection for an n8n Webhook node and verify its signing secret; events such as call.completed then arrive signed with HC-Signature. The steps are in the API docs. Polling is simpler to start with.
For n8n's AI Agent node, the MCP Client Tool can point at https://humancalls.ai/mcp with your API key as a Bearer token, which gives the agent the same tools chat apps use. See Connect for the tool list.
Questions
- What does a call cost inside a workflow?
- The same as anywhere: $1 per connected minute, capped by
max_minutes, and $0 when nobody answers. If credit is too low the API returns402and no call is queued. See pricing. - Can I use this from Make or Zapier?
- Yes. Any tool that can send an HTTPS request with a header can use the same two calls.
- Is there a rate limit?
- Ten new tasks a minute per account and three open tasks per destination number. A
429response includesRetry-After.
Related
- Check stock and price by phoneHave a real person phone a supplier or store to confirm stock, price and lead time, and get the answers back as typed fields your team or AI agent can use.
- HumanCalls in CursorAdd the HumanCalls MCP server to Cursor so its agent can ask a real person to phone a business and bring back typed answers, a summary and the recording.
- Collect quotes by phoneHave a real person phone several vendors with the same questions and return price, lead time and terms as comparable fields for you or your AI agent.
Try it with 10 free minutes
$1 per connected minute after that, and nothing when nobody picks up.