Openclaw-config vapi-calls

Vapi Voice Calls

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.md
source 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_KEY
  • VAPI_ASSISTANT_ID
  • VAPI_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:

  • phoneNumberId
    and
    assistantId
    from your config
  • customer.number
    — the phone number to call (E.164 format)
  • assistantOverrides.model.systemPrompt
    — the full system prompt including task-specific instructions for this call
  • assistantOverrides.firstMessage
    — a contextual opening line for this specific call

The base assistant defines voice, transcriber, and personality defaults. The override injects what THIS call is about.

System Prompt Structure for Each Call

  1. The base prompt (heart-centered foundation + agent personality + "You are on a live phone call")
  2. A
    TASK:
    section with specific instructions for this call

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:

  • assistant-ended-call
    — completed normally
  • customer-did-not-answer
    — no pickup, consider retrying or texting first
  • pipeline-error-*
    — voice provider issue, check configuration

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 (
    {{var}}
    ) can be used in prompts, resolved from call metadata.