Voizbot skill
Skill kodifydev/voizbot-skill
Place and inspect Voizbot outbound phone calls through the multitenant public API when the user wants an agent to call a person or business, follow up a call, or review its transcript and outcome.From its SKILL.md
npx -y skills add kodifydev/voizbot-skillAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
5.2 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it
Voizbot Phone Calls
Use this skill when the user wants the agent to call a person or business through Voizbot, or when they need the current status, transcript, or outcome of an existing call.
This version is for the multitenant public API. Do not use the legacy gateway token workflow.
What changed
- Auth is now the Voizbot API token generated in Settings.
- The public API base is
https://api.voizbot.com/v1. - Outbound calls require
phoneNumberId. - Calls, templates, tools, transcripts, and phone numbers are organization-scoped.
- The returned
jobIdis the call id you can reuse with the read endpoints.
Requirements
Before placing calls, make sure all of this is true:
- The organization already has a valid Voizbot API token.
- At least one phone number exists in Voizbot.
- If the call needs a template or function tools, they are already created in Voizbot.
Recommended local config
Create ~/.config/voizbot/config.json:
{
"baseUrl": "https://api.voizbot.com/v1",
"apiToken": "vb_...",
"phoneNumberId": "pn_..."
}
The bundled script also accepts environment variables:
VOIZBOT_API_BASE_URLVOIZBOT_API_TOKENVOIZBOT_PHONE_NUMBER_IDVOIZBOT_CONFIG
CLI arguments override config and env vars.
Core workflow
- Confirm the call target and objective.
- If needed, inspect available resources first:
numbersto discover phone numbers and copy aphoneNumberIdtemplatesto find outbound templatestoolsto find reusable function tools
- Build a short, explicit call prompt.
- Launch the call with
create. - Keep the returned
jobId/ call id. - Poll
call <id>until the call is finished if the user wants the result. - Use
transcript <id>when you need the full transcript payload. - Summarize the outcome in plain language.
Prompt guidance
Keep the prompt practical and narrow. Usually include:
- who the assistant is
- the concrete goal
- relevant context
- hard constraints
- the exact close condition before ending the call
Pattern:
You are Juan's assistant calling on his behalf.
Goal: confirm an appointment for next week.
Context: Juan is available Tuesday after 16:00 and Wednesday before 13:00.
Constraints: do not commit to any other time; if there is no slot, ask for the earliest alternative.
Close condition: repeat the final date, local time, and next step before ending the call.
Script commands
List phone numbers
python3 ~/.hermes/skills/voizbot-phone-calls/scripts/voizbot_calls.py numbers
Use this first if you do not already know the phoneNumberId.
List outbound templates
python3 ~/.hermes/skills/voizbot-phone-calls/scripts/voizbot_calls.py templates
List function tools
python3 ~/.hermes/skills/voizbot-phone-calls/scripts/voizbot_calls.py tools
Start a call
python3 ~/.hermes/skills/voizbot-phone-calls/scripts/voizbot_calls.py create \
--to "+34600111222" \
--phone-number-id "pn_123" \
--template-id "out_tpl_sales" \
--extra-system-prompt "If they agree, offer Tuesday at 18:30 first." \
--meta leadId=lead_7821 \
--meta owner=Juan
Useful options:
--system-prompt--system-prompt-file--extra-system-prompt--extra-system-prompt-file--template-id--voice-model--function-tool-id--extra-function-tool-id--custom-tools-file--meta KEY=VALUE--metadata-file--dry-run
List recent calls
python3 ~/.hermes/skills/voizbot-phone-calls/scripts/voizbot_calls.py calls --filter recent --limit 10
Get one call
python3 ~/.hermes/skills/voizbot-phone-calls/scripts/voizbot_calls.py call call_abc123
Get one transcript
python3 ~/.hermes/skills/voizbot-phone-calls/scripts/voizbot_calls.py transcript call_abc123
Monitoring guidance
- For active calls, avoid tight polling loops.
- Start with waits around 45-60 seconds.
- If the call is still ringing or clearly ongoing, keep waits long.
- If the user wants the final answer without asking again, delegate monitoring to a subagent that polls until the call reaches a final status.
- Final statuses usually include
completed,busy,no-answer,failed, orcanceled.
Reporting back to the user
When the call is still running, report:
- current status
- elapsed time if visible
- whether there is already transcript data
When the call is finished, report:
- final status
- the concrete agreement, appointment, or blocker
- any exact date/time/price mentioned
- the next action the user should know
If the transcript contains a specific commitment, quote it clearly.
Safety notes
- Do not place a real call unless the user explicitly asked for that call.
- If the phone number, target person, or objective is unclear, stop and ask.
- Prefer
--dry-runif you only need to validate payload assembly. - Prefer the public Voizbot API and this script over legacy
/calls/jobsroutes and old gateway tokens.
What ships with it: 6 files
15.1 KB alongside SKILL.md, 2 of them executable
examples/
scripts/
- voizbot_calls.pyruns11.0 KB
- .gitignore29 B
- install.shruns1.1 KB
- LICENSE1.0 KB
- README.md1.8 KB