install
source · Clone the upstream repo
git clone https://github.com/TechNickAI/openclaw-config
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/TechNickAI/openclaw-config "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/vapi-calls" ~/.claude/skills/technickai-openclaw-config-vapi-calls && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/TechNickAI/openclaw-config "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/vapi-calls" ~/.openclaw/skills/technickai-openclaw-config-vapi-calls && rm -rf "$T"
manifest:
skills/vapi-calls/SKILL.mdsource content
Vapi Voice Calls
Make real outbound phone calls through Vapi's voice AI platform.
Prerequisites
Check that these are set in your environment:
VAPI_API_KEYVAPI_ASSISTANT_IDVAPI_PHONE_NUMBER_ID
If any are missing, read references/setup.md and complete first-time setup before proceeding.
Making a Call
Use the Vapi
POST /call endpoint with:
andphoneNumberId
from your configassistantId
— the phone number to call (E.164 format)customer.number
— the full system prompt including task-specific instructions for this callassistantOverrides.model.systemPrompt
— a contextual opening line for this specific callassistantOverrides.firstMessage
The base assistant defines voice, transcriber, and personality defaults. The override injects what THIS call is about.
System Prompt Structure for Each Call
- The base prompt (heart-centered foundation + agent personality + "You are on a live phone call")
- A
section with specific instructions for this callTASK:
Everything the voice agent needs to know goes in the override. The voice agent has no memory between calls.
After the Call
Poll
GET /call/{id} to check status and endedReason. Key values:
— completed normallyassistant-ended-call
— no pickup, consider retrying or texting firstcustomer-did-not-answer
— voice provider issue, check configurationpipeline-error-*
Notes
- Vapi built-in voices are free. ElevenLabs voices require a paid ElevenLabs plan.
- Cost is ~$0.05-0.07/min, pay-as-you-go.
- Template variables (
) can be used in prompts, resolved from call metadata.{{var}}