Skills elevenlabs-twilio-memory-bridge

FastAPI personalization webhook that adds persistent caller memory and dynamic context injection to ElevenLabs Conversational AI agents on Twilio. No audio proxying, file-based persistence, OpenClaw compatible.

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/britrik/elevenlabs-twilio-memory-bridge" ~/.claude/skills/openclaw-skills-elevenlabs-twilio-memory-bridge && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/britrik/elevenlabs-twilio-memory-bridge" ~/.openclaw/skills/openclaw-skills-elevenlabs-twilio-memory-bridge && rm -rf "$T"
manifest: skills/britrik/elevenlabs-twilio-memory-bridge/SKILL.md
source content

elevenlabs-twilio-memory-bridge

Personalization webhook service for ElevenLabs + Twilio voice agents with persistent caller memory.

What It Does

When a call arrives on your Twilio number, ElevenLabs' native integration triggers this webhook. The bridge looks up the caller's history, loads long-term memory facts and daily context notes, combines them with a customizable soul/personality template, and returns everything as a system prompt override so your agent greets each caller with full context.

Architecture

  • No audio proxying - ElevenLabs and Twilio handle media directly
  • Webhook only - called once per inbound call to inject context
  • File-based persistence - JSON files in
    ./data/
    , zero external dependencies
  • OpenClaw compatible - works with any OpenAI-compatible LLM endpoint

Endpoints

EndpointMethodPurpose
/webhook/personalize
POSTElevenLabs calls this on inbound call
/webhook/post-call
POSTOptional post-call cleanup
/api/memory/{phone_hash}
POSTAdd long-term fact about a caller
/api/notes
POSTAdd global or caller-scoped context note
/health
GETHealth check

Setup

  1. Clone repo,
    pip install -r requirements.txt
  2. Copy
    .env.example
    to
    .env
    , fill in secrets
  3. Configure ElevenLabs agent with Custom LLM pointing to your OpenClaw instance
  4. Enable system prompt + first message overrides in agent Security settings
  5. Add webhook URL
    https://your-domain/webhook/personalize
    in ElevenLabs settings
  6. Import Twilio number in ElevenLabs dashboard
  7. Run:
    uvicorn app:app --host 0.0.0.0 --port 8000

Required Environment Variables

  • ELEVENLABS_API_KEY
    - scoped ElevenLabs key
  • ELEVENLABS_AGENT_ID
    - your agent ID
  • OPENCLAW_API_BASE_URL
    - your OpenClaw instance URL
  • PUBLIC_BASE_URL
    - publicly reachable URL of this service

Security

  • All caller phone numbers are SHA-256 hashed before storage/logging
  • Secrets loaded exclusively from environment variables
  • Optional HMAC webhook signature verification
  • Safe for public GitHub repos, no secrets in source