通话助手

opencawl

by ammbo

Gives your Claw a phone number. Make and manage phone calls via OpenCawl. Use this skill whenever the user asks you to call someone, make a phone call, schedule a call, check on a call, set up inbound phone handling, or review call transcripts or outcomes.

4.3k其他未扫描2026年4月20日

安装

claude skill add --url https://github.com/openclaw/skills

文档

OpenCawl

Gives your Claw a phone number. Make and manage outbound and inbound phone calls via the OpenCawl API, with live telephony handled by ElevenLabs and Twilio.

Setup

  1. Sign up at https://opencawl.com
  2. Generate an API key at https://opencawl.com/dashboard/keys
  3. Set OPENCAWL_API_KEY in your environment or via skills.entries.opencawl.apiKey in ~/.openclaw/openclaw.json
  4. Install this skill: openclaw skills install opencawl
  5. Run /opencawl setup to provision a phone number and get the ElevenLabs webhook/tool configuration

Call Architecture

OpenCawl is optimized around one primary mode.

Outbound and Inbound: Autonomous

OpenClaw dispatches a goal and context to OpenCawl, then moves on. ElevenLabs handles the live conversation and Twilio dialing. Post-call webhooks are the primary completion path; polling is optional fallback.

Best for: appointment setting, lead qualification, outreach, follow-ups, collections — any call with a predictable conversation tree.

code
OpenClaw  →  opencawl.call(to, goal, context)
                    ↓
             OpenCawl + ElevenLabs run the call
                    ↓
             post-call webhook updates status immediately
                    ↓
             OpenClaw receives structured outcome

Inbound calls run through the same shared ElevenLabs agent, with per-user prompt, voice, first-message, and task-dispatch settings supplied by OpenCawl.


Commands

call — Make an outbound call

Dispatch a goal-based outbound call. Returns a call_id immediately. The call runs async; use status to track resolution.

Parameters:

  • to (required): E.164 phone number, e.g. +15551234567
  • goal (required): What the call should accomplish in plain language
  • context (optional): Background the agent should know — lead source, prior interactions, objections to expect
  • persona (optional): Voice/personality profile slug (e.g. professional-friendly, direct-confident)
  • voice_id (optional): Override voice directly by voice library ID (e.g. rachel, thomas)
  • max_duration_seconds (optional): Hard cap on call length in seconds (default: 300, max: 1800)
  • on_completion_webhook (optional): HTTPS URL OpenCawl will POST the outcome to

Example:

json
{
  "skill": "opencawl",
  "command": "call",
  "to": "+15551234567",
  "goal": "Schedule a 30-minute Workmate demo. Get their name, email, and two availability windows. If they push back, mention we have a 14-day free trial.",
  "context": "Inbound lead from the enterprise landing page. Requested info 2 days ago. Has not replied to follow-up email.",
  "persona": "professional-friendly"
}

Returns: call_id, status: "ringing"


status — Check call outcome

Poll the status and result of any call.

Parameters:

  • call_id (required): The call ID returned by call

Returns:

json
{
  "call_id": "abc123def456",
  "direction": "outbound",
  "status": "completed",
  "outcome": "success",
  "to_number": "+15551234567",
  "goal": "Schedule a 30-minute Workmate demo",
  "persona": "professional-friendly",
  "summary": "Spoke with Jamie Chen. Scheduled demo for Thursday 2pm ET. Email: jamie@acme.com.",
  "extracted": {
    "name": "Jamie Chen",
    "email": "jamie@acme.com",
    "availability": ["Thursday 2pm ET", "Friday 10am ET"]
  },
  "duration_seconds": 187,
  "transcript": "...",
  "recording_url": "https://api.twilio.com/...",
  "created_at": "2026-03-28T14:00:00Z",
  "completed_at": "2026-03-28T14:03:07Z"
}

Possible status values: initiated, queued, ringing, in_progress, completed, failed, no_answer, voicemail, busy


calls — List recent calls

List calls with optional filtering.

Parameters:

  • status (optional): Filter by status
  • from (optional): ISO date range start
  • to (optional): ISO date range end
  • limit (optional): Max results (default: 20, max: 100)
  • cursor (optional): Pagination cursor from previous response

hangup — End a call

Terminate an in-progress call.

Parameters:

  • call_id (required): Call to end
  • reason (optional): Logged reason (e.g. "goal_achieved", "no_answer_threshold")

voicemail — Check voicemail inbox

List and read voicemails left on your OpenCawl number.

Parameters:

  • limit (optional): Max results (default: 10)
  • unread_only (optional): true to filter to unheard messages

credits — Check balance

Returns: Credit balance, plan name, estimated minutes remaining, next reset date


setup — First-time initialization

Reports your current phone number, inbound configuration, gateway config, and ElevenLabs webhook/tool endpoints. Run once after installing the skill.

code
/opencawl setup

Personas

Personas define how OpenCawl sounds and behaves on calls. Each persona maps to a voice from the ElevenLabs voice library.

SlugVoiceBest For
professional-friendlyEmilyB2B outreach, demos, enterprise
direct-confidentThomasExecutive outreach, follow-ups
empathetic-supportSerenaSupport, onboarding, check-ins
energetic-salesFreyaSMB sales, product promotions
neutral-informationalAdamAppointment reminders, surveys

Pass the persona slug in the call command. If omitted, your dashboard voice selection is used. You can also pass voice_id directly to use any voice from the library.

See references/personas.md for the full voice library and ElevenLabs model recommendations.


Inbound Tasks

To let the shared ElevenLabs agent perform real work during live calls, configure a per-user OpenClaw gateway webhook in OpenCawl settings. The agent uses the OpenCawl task tools to dispatch work and check status.


Configuration Reference

~/.openclaw/openclaw.json:

json
{
  "skills": {
    "entries": {
      "opencawl": {
        "enabled": true,
        "apiKey": "sk-cawl-...",
        "env": {
          "OPENCAWL_API_URL": "https://opencawl.com",
          "OPENCAWL_DEFAULT_PERSONA": "professional-friendly",
          "OPENCAWL_MAX_DURATION": "300",
          "OPENCAWL_ANNOUNCE_CHANNEL": "telegram"
        }
      }
    }
  }
}

Reference Files

  • references/inbound.md — Inbound autonomous call setup and gateway task-dispatch pattern
  • references/personas.md — Voice/persona configuration and ElevenLabs voice mapping
  • references/api.md — Full OpenCawl REST API reference (all endpoints, request/response schemas)

相关 Skills

Claude API

by anthropic

热门

Build, debug, and optimize Claude API / Anthropic SDK apps. Apps built with this skill should include prompt caching. Also handles migrating existing Claude API code between Claude model versions (4.5 → 4.6, 4.6 → 4.7, retired-model replacements). TRIGGER when: code imports `anthropic`/`@anthropic-ai/sdk`; user asks for the Claude API, Anthropic SDK, or Managed Agents; user adds/modifies/tunes a Claude feature (caching, thinking, compaction, tool use, batch, files, citations, memory) or model (Opus/Sonnet/Haiku) in a file; questions about prompt caching / cache hit rate in an Anthropic SDK project. SKIP: file imports `openai`/other-provider SDK, filename like `*-openai.py`/`*-generic.py`, provider-neutral code, general programming/ML.

其他
安全123.0k

并行代理

by axelhu

热门

Use when facing 2 or more independent tasks that can be worked on without shared state - dispatches parallel subagents using sessions_spawn for concurrent investigation and execution, adapted for OpenClaw

其他
未扫描4.3k

中文病句修正

by catchfishcat

热门

Use when correcting Chinese ill-formed sentences (病句) with minimal edits while preserving original meaning, including grammar, wording, word order, redundancy, and logical consistency issues.

其他
未扫描4.3k

评论