Voice calls for agents
Install one skill, hand your agent a phone, and let it call for real.
Voizbot exposes a multitenant public API for outbound calls, transcripts, templates, tools, and call logs. This page lists the public skill bundle — SKILL.md plus the Python CLI — and how to configure it.
Public API
Use https://api.voizbot.com/v1 with a Voizbot API token generated in Settings.
Agent-friendly
Point your coding agent at the two public URLs — it can fetch SKILL.md and the script and wire them like any other skill.
Multitenant by default
Templates, tools, phone numbers, calls, and transcripts are scoped to the authenticated organization.
1 · Install
Fetch SKILL.md and the CLI script
There is no installer script. Give your AI agent the two public URLs (or download them yourself): SKILL.md describes when and how to call the API; voizbot_calls.py is the standalone CLI. The agent can place them in whatever skill tree your environment uses — Hermes-style layouts often use ~/.hermes/skills/voizbot-phone-calls/.
Optional manual fetch:
curl -fsSL https://voizbot.com/skills/voizbot-phone-calls/SKILL.md -o SKILL.md
curl -fsSL https://voizbot.com/skills/voizbot-phone-calls/scripts/voizbot_calls.py -o voizbot_calls.py
chmod +x voizbot_calls.py2 · Configure
Create a Voizbot token and save your config
- Sign in to Voizbot and open Settings.
- Generate an API token.
- Save a config file at
~/.config/voizbot/config.json. - Use the
numberscommand once to discover yourphoneNumberIdif you do not know it yet.
{
"baseUrl": "https://api.voizbot.com/v1",
"apiToken": "VOIZBOT_TOKEN",
"phoneNumberId": "pn_..."
}The CLI also accepts VOIZBOT_API_TOKEN, VOIZBOT_API_BASE_URL, and VOIZBOT_PHONE_NUMBER_ID if you prefer environment variables.
3 · Discover resources
Inspect phone numbers, templates, and tools before making calls
The skill is built around the public API, so agents can inspect the organization resources instead of hardcoding ids.
python3 ~/.hermes/skills/voizbot-phone-calls/scripts/voizbot_calls.py numbers
python3 ~/.hermes/skills/voizbot-phone-calls/scripts/voizbot_calls.py templates
python3 ~/.hermes/skills/voizbot-phone-calls/scripts/voizbot_calls.py toolsThe numbers command is especially important because outbound calls require phoneNumberId.
4 · Call
Start with a dry run, then place the real call
Dry runs validate the payload and create the call record without touching the phone network. Once the prompt looks right, remove --dry-run.
python3 ~/.hermes/skills/voizbot-phone-calls/scripts/voizbot_calls.py create --to "+346****1222" --template-id "out_tpl_demo" --extra-system-prompt "Confirm the appointment and repeat the final date before ending the call." --dry-runThe same flow is available over plain HTTP if your agent prefers raw API calls.
curl -X POST "https://api.voizbot.com/v1/calls/outbound" -H "Authorization: Bearer *** \
-H "Content-Type: application/json" -d '{
"phoneNumberId": "pn_123",
"to": "+141****0123",
"templateId": "out_tpl_follow_up",
"extraSystemPrompt": "If they agree, offer Tuesday at 18:30 first.",
"extraFunctionToolIds": ["tool_check_calendar"]
}'The response returns jobId. In the multitenant API that value is the call id you can reuse with call <id> and transcript <id>.
5 · Monitor
Read status, transcript, and outcome
Agents should avoid stupidly tight polling loops. Start with wider waits, then tighten only if the call is clearly close to finishing.
python3 ~/.hermes/skills/voizbot-phone-calls/scripts/voizbot_calls.py calls --filter active --limit 10
python3 ~/.hermes/skills/voizbot-phone-calls/scripts/voizbot_calls.py call call_abc123
python3 ~/.hermes/skills/voizbot-phone-calls/scripts/voizbot_calls.py transcript call_abc123Calls expose status, transcript, metadata, events, and recording info through the public API. When the call is finished, summarize the concrete agreement or blocker, not a fluffy novel.
6 · Files
Public skill bundle URLs
- https://voizbot.com/skills/voizbot-phone-calls/SKILL.md
- https://voizbot.com/skills/voizbot-phone-calls/scripts/voizbot_calls.py
If you need the endpoint details, jump to Phone Numbers, Outbound Calls, and AI Agents in the API docs.
