The HTTP API Tool lets your voice agent make REST API calls during a live conversation. The agent can check your CRM for caller history while the caller is on hold, query inventory status to confirm availability, post a lead to your sales pipeline, or trigger a work-order creation in your CRM. This guide shows the configuration format and 4 common patterns.

Anatomy of the HTTP API Tool

Each HTTP API Tool has: method (GET/POST/PUT/DELETE), URL (the endpoint), headers (auth token, content-type), body (JSON for POST/PUT), response fields (which fields the agent should read into its context). The agent decides when to call the tool based on the Agent node's system prompt. Example: 'If the caller asks about order status, call the GetOrder endpoint with the order number they gave you.'

Pattern 1 — CRM lookup before booking

Tool: GET https://yourcrm.com/api/customers?phone={{caller_phone}}
Auth: Bearer YOUR_CRM_TOKEN
Response fields to expose: customer.name, customer.id, customer.appointments[0]

The agent greets, asks the caller's name, calls the tool with their phone number, reads the customer name from the response, addresses the caller by name. If the customer's first appointment is in the past, the agent asks 'are you calling about your last visit?'

Pattern 2 — Inventory check before quoting

Tool: GET https://shop.example.com/api/inventory/{{item_name}}
Response fields: stock_count, lead_time_days

The agent greets, asks the caller what they need. If they ask for a specific item, the agent calls the tool. If stock_count > 0, the agent says 'we have that in stock, you can pick it up today.' If stock_count == 0, 'we don't have that in stock right now — it would take {{lead_time_days}} days to get in.' Real-time, accurate, no awkward 'let me check...'.

Pattern 3 — Lead to Zapier

Tool: POST https://hooks.zapier.com/hooks/catch/123456/abc123/
Body: {"name":"{{caller_name}}","phone":"{{caller_phone}}","request":"{{request}}","timestamp":"{{current_time}}"}

Every caller's info lands in Zapier → routes to your Google Sheet, your Slack, your email. The agent calls the tool at end of call (after capturing the lead) and gets confirmation. The caller hears 'you'll get an email from us today.'

Pattern 4 — Trigger work order

Tool: POST https://api.servicecrm.com/v1/workorders
Body: {"customer": {"name":"{{caller_name}}", "phone":"{{caller_phone}}"}, "service":"{{service_requested}}", "priority":"{{urgency}}"}

For service businesses (HVAC, plumbing, electrical). The agent qualifies urgency ('is this an emergency?'), captures service requested, posts the work order to the CRM while the caller is still on the phone. The CRM receives a fully-formed work order before the agent hangs up.

Frequently Asked Questions

Can the agent chain multiple API calls?

Yes. Add multiple HTTP API Tools to one Agent node. The agent can call them in sequence based on the conversation. Example: lookup customer, then create appointment, then send SMS confirmation — three separate tools.

What if the API returns an error?

The agent sees the HTTP status code and the body. Write a system prompt rule: 'If status >= 400, apologize to the caller, take a message, and end the call.' The caller should never hear technical error messages.

Is my API token exposed?

No. Auth headers are set in the tool configuration, not in the system prompt. The LLM does not see the auth header value — only the response body. Configure tokens in the dashboard, never as variables in the system prompt.