Clawctl
Tutorial
8 min

Call Your OpenClaw Over the Phone Using ElevenLabs Agents

What if you could call your AI agent while driving and ask how your project is going? Here's how to connect OpenClaw to a real phone number using ElevenLabs Agents and Twilio.

Clawctl Team

Product & Engineering

Call Your OpenClaw Over the Phone Using ElevenLabs Agents

What if you could call your OpenClaw bot and ask how your coding project is going?

Or ask it to remember something while you're driving?

Or get a digest of what happened today while you're walking the dog?

OpenClaw supports text-to-speech and speech-to-text out of the box. But making it truly conversational takes work. Turn-taking, interruption handling, latency management, phone integration... it adds up.

ElevenLabs Agents handles all of that. You bring the brains (OpenClaw). They bring the voice.

Here's how to wire them together.

The Architecture

The split is clean:

ElevenLabs Agents handles:

  • Turn-taking (knowing when you're done speaking)
  • Speech synthesis (text to voice)
  • Speech recognition (voice to text)
  • Phone integration (Twilio numbers)
  • Voice-related latency optimization

OpenClaw handles:

  • Tools and actions
  • Memory and context
  • Skills and capabilities
  • The actual thinking

The two systems communicate using the standard OpenAI /chat/completions protocol. ElevenLabs sends the conversation history, OpenClaw responds, ElevenLabs speaks the response.

Simple. Powerful.

Prerequisites

Before you start:

  • ElevenLabs account (for the voice agent platform)
  • OpenClaw installed and running (local or hosted)
  • ngrok installed (to expose your local instance, or skip if using Clawctl)
  • Twilio account (if you want a real phone number)

Step 1: Configure OpenClaw

In your openclaw.json, enable the chat completions endpoint:

{
  "gateway": {
    "http": {
      "endpoints": {
        "chatCompletions": {
          "enabled": true
        }
      }
    }
  }
}

This exposes /v1/chat/completions on your gateway port. That's the universal endpoint ElevenLabs will use to interact with your OpenClaw.

Restart your OpenClaw instance for the changes to take effect.

Step 2: Expose Your OpenClaw

ElevenLabs needs to reach your OpenClaw instance over the internet.

Option A: ngrok (Quick and Dirty)

Start a tunnel:

ngrok http 18789

Replace 18789 with your actual gateway port.

ngrok gives you a public URL like https://your-unique-url.ngrok.io. Keep this terminal open.

Option B: Clawctl (Production-Ready)

If you're running OpenClaw through Clawctl, your instance is already securely exposed with:

  • Token authentication on every request
  • Audit logging for every interaction
  • Network egress control
  • No need for ngrok tunnels

Your endpoint is already at https://your-tenant.clawctl.com/v1/chat/completions.

Step 3: Configure ElevenLabs Agent

Manual Setup (via Dashboard)

  1. Create a new ElevenLabs Agent in their dashboard
  2. Under LLM settings, select Custom LLM
  3. Set the URL to your endpoint:
    • ngrok: https://your-unique-url.ngrok.io/v1/chat/completions
    • Clawctl: https://your-tenant.clawctl.com/v1/chat/completions
  4. Add your OpenClaw gateway token as the authentication header

Automated Setup (via API)

If you prefer scripting this (or want your coding agent to do it), here are the API calls:

Create the secret first:

curl -X POST https://api.elevenlabs.io/v1/convai/secrets \
  -H "xi-api-key: YOUR_ELEVENLABS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "new",
    "name": "openclaw_gateway_token",
    "value": "YOUR_OPENCLAW_GATEWAY_TOKEN"
  }'

This returns a response with the secret ID:

{
  "type": "stored",
  "secret_id": "abc123...",
  "name": "openclaw_gateway_token"
}

Then create the agent:

curl -X POST https://api.elevenlabs.io/v1/convai/agents/create \
  -H "xi-api-key: YOUR_ELEVENLABS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "conversation_config": {
      "agent": {
        "language": "en",
        "prompt": {
          "llm": "custom-llm",
          "prompt": "You are a helpful assistant.",
          "custom_llm": {
            "url": "https://YOUR_NGROK_URL.ngrok-free.app/v1/chat/completions",
            "api_key": {
              "secret_id": "RETURNED_SECRET_ID"
            }
          }
        }
      }
    }
  }'

Replace the placeholders:

  • YOUR_ELEVENLABS_API_KEY - your ElevenLabs API key
  • YOUR_OPENCLAW_GATEWAY_TOKEN - from your openclaw.json under gateway.auth.token
  • YOUR_NGROK_URL - your ngrok subdomain (or Clawctl tenant URL)
  • RETURNED_SECRET_ID - the secret_id from the first API call

ElevenLabs now routes all conversation turns through your OpenClaw. It sends the full message history on each turn, so your assistant has complete context.

At this point, you can already talk to your OpenClaw bot using the ElevenLabs agent interface.

Step 4: Attach a Phone Number

This is where it gets interesting.

  1. In Twilio, purchase a phone number (or use an existing one)
  2. In the ElevenLabs agent settings, go to the Phone section
  3. Enter your Twilio credentials:
    • Account SID
    • Auth Token
  4. Connect your Twilio number to the agent

That's it. Your OpenClaw now answers the phone.

Call the number. Talk to your agent. Ask it to check on your project, add a reminder, or summarize your day.

What This Actually Enables

Once your OpenClaw is phone-accessible, use cases open up:

While driving:

  • "What's the status of the deployment?"
  • "Remember to follow up with the client tomorrow"
  • "What meetings do I have this afternoon?"

Quick check-ins:

  • "Did any alerts fire in the last hour?"
  • "What's our current MRR?"
  • "Summarize the Slack channel from today"

Hands-free operations:

  • "Deploy the staging branch to production"
  • "Roll back the last release"
  • "Check the database connection count"

Your agent has all the same capabilities it has in text mode. Now you can access them with your voice.

Security Considerations

A few things to think about before you expose your agent to the phone network:

Authentication:

  • Every call to your OpenClaw should require a gateway token
  • ElevenLabs stores this as a secret, not in plaintext
  • Rotate tokens periodically

Audit trails:

  • Phone conversations should be logged the same as text interactions
  • If you're using Clawctl, this is automatic
  • If self-hosting, make sure you're capturing conversation history

Sensitive actions:

  • Consider requiring additional confirmation for high-risk actions
  • "Deploy to production" over the phone should probably ask "Are you sure?"
  • Clawctl's approval workflow handles this automatically

Exposure surface:

  • ngrok tunnels are convenient but not production-grade
  • Anyone who guesses your ngrok URL could potentially interact with your agent
  • For production, use proper authentication and a stable endpoint

The Production Setup

For a real deployment (not just demos), here's the recommended stack:

ComponentRecommended Approach
OpenClaw hostingClawctl (managed, secure, audited)
Voice platformElevenLabs Agents
Phone numbersTwilio
AuthenticationGateway tokens + Clawctl audit logs
High-risk actionsClawctl approval workflow

This gives you:

  • A phone number anyone (or just you) can call
  • Voice conversations routed to your OpenClaw brain
  • Full audit trail of every interaction
  • Approval workflows for sensitive operations
  • No ngrok tunnels or exposed ports

Wrapping Up

The combination of ElevenLabs Agents + OpenClaw is powerful. ElevenLabs handles everything voice-related. OpenClaw handles everything intelligence-related.

You get a voice interface to your AI agent with minimal custom code.

The main decision is how you expose your OpenClaw:

  • ngrok for quick demos and local testing
  • Clawctl for production with security, auditing, and approvals built in

Either way, the setup takes about 15 minutes. And then you can call your AI agent from your phone.

Try explaining that to someone five years ago.

Deploy OpenClaw securely with Clawctl

If you copy this article to your coding agent, it can perform many of the setup steps for you automatically.

Ready to deploy your OpenClaw securely?

Get your OpenClaw running in production with Clawctl's enterprise-grade security.