Agent skill

Elevenlabs Webhooks Events

by jeremylongshore in jeremylongshore/tons-of-skills-marketplace

Implement ElevenLabs webhook HMAC signature verification and event handling.

MITAuto-check passedBackend & APIs

Install Elevenlabs Webhooks Events

skills CLI
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill elevenlabs-webhooks-events -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jeremylongshore/tons-of-skills-marketplace elevenlabs-webhooks-events --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/.curated/elevenlabs-webhooks-events .claude/skills/elevenlabs-webhooks-events && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
elevenlabs-webhooks-events
GitHub stars
2.8k
Token cost
~1.8k tokens
SKILL.md length
522 words
Files
3 (incl. references)
Skills in repo
3,342
Repo updated
First seen
Licence
MIT

At a glance

Implement ElevenLabs webhook HMAC signature verification and event handling.

  • Works in 7 steps: Know the event types — subscribe only to… → Create the webhook in the dashboard… → Verify the signature with HMAC-SHA256… → …
  • Setting up webhook endpoints for transcription completion
  • SKILL.md covers Overview, Prerequisites, Instructions and Output, plus 5 more sections
  • Calls curl

What it does

Elevenlabs Webhooks Events is an agent skill from jeremylongshore/tons-of-skills-marketplace. Implement ElevenLabs webhook HMAC signature verification and event handling. Use when setting up webhook endpoints for transcription completion, call recording, or agent conversation events from ElevenLabs. Trigger with "elevenlabs webhook", "elevenlabs events", "elevenlabs webhook signature", "handle elevenlabs notifications", "elevenlabs post-call webhook", "elevenlabs transcription webhook".

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/examples.md` and `references/implementation.md`). Compatibility notes: Designed for Claude Code

It sits in Backend & APIs, covering Webhooks and Text to speech and voice. It works with ElevenLabs. The repository describes itself as: Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com. The licence is MIT.

When your agent uses it

  • Setting up webhook endpoints for transcription completion
  • Agent conversation events from ElevenLabs
  • With elevenlabs webhook
  • Elevenlabs events

Example prompts

  • “elevenlabs webhook”
  • “elevenlabs events”
  • “elevenlabs webhook signature”
  • “/elevenlabs-webhooks-events”

Requirements

  • Compatibility (from SKILL.md): Designed for Claude Code
  • Pre-approved tools (allowed-tools): Read, Write, Edit, Bash(curl:*)

Workflow steps

7 steps, taken from the first numbered list in SKILL.md.

  1. Know the event types — subscribe only to what you handle (table below).
  2. Create the webhook in the dashboard (Settings > Webhooks) and copy the HMAC secret.
  3. Verify the signature with HMAC-SHA256 over ".", using a timing-safe compare and a 5-minute replay window. See the full verifier.
  4. Handle the request with a raw body parser, ack 200 immediately, then process asynchronously. See the Express handler.
  5. Route events to per-type handlers. See handler examples.
  6. Guard against duplicates with idempotency keyed on the event ID. See idempotency.
  7. Test locally by tunneling with ngrok. See local testing.

What it can do on your machine

Read from SKILL.md and the folder at commit cfae287. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit
    • Bash(curl:*)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • elevenlabs.io

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Designed for Claude Code

    From compatibility in the SKILL.md frontmatter.

Context cost

Elevenlabs Webhooks Events loads about 1.8k tokens when it runs, and up to ~3.5k if it reads all its reference files. Until then it costs about 106 tokens; SKILL.md has 522 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~106
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from jeremylongshore/tons-of-skills-marketplace at commit cfae287, republished under its MIT licence (© jeremylongshore). 522 words, ~1,758 tokens.

Download SKILL.mdSave it as .claude/skills/elevenlabs-webhooks-events/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
elevenlabs-webhooks-events
description
Implement ElevenLabs webhook HMAC signature verification and event handling. Use when setting up webhook endpoints for transcription completion, call recording, or agent conversation events from ElevenLabs. Trigger with "elevenlabs webhook", "elevenlabs events", "elevenlabs webhook signature", "handle elevenlabs notifications", "elevenlabs post-call webhook", "elevenlabs transcription webhook".
allowed-tools
Read, Write, Edit, Bash(curl:*)
compatibility
Designed for Claude Code
version
1.6.0
license
MIT
author
Jeremy Longshore <jeremy@intentsolutions.io>
tags
saas, voice, ai, elevenlabs, webhooks, events

ElevenLabs Webhooks & Events

Overview

ElevenLabs webhooks send HTTP POST notifications when async operations complete: transcription completion, post-call data from Conversational AI agents, and call initiation failures. Every delivery is signed with an HMAC-SHA256 signature you must verify before processing. This skill builds a secure endpoint that verifies signatures, routes events by type, and acks fast to avoid auto-disable.

Prerequisites

  • ElevenLabs account (webhooks configured in Settings > Webhooks)
  • HTTPS endpoint accessible from the internet
  • Webhook secret (generated during webhook creation in dashboard)

Instructions

The full, copy-ready code for each step lives in references/implementation.md; per-event handlers live in references/examples.md. The high-level workflow:

  1. Know the event types — subscribe only to what you handle (table below).
  2. Create the webhook in the dashboard (Settings > Webhooks) and copy the HMAC secret.
  3. Verify the signature with HMAC-SHA256 over "<timestamp>.<raw_body>", using a timing-safe compare and a 5-minute replay window. See the full verifier.
  4. Handle the request with a raw body parser, ack 200 immediately, then process asynchronously. See the Express handler.
  5. Route events to per-type handlers. See handler examples.
  6. Guard against duplicates with idempotency keyed on the event ID. See idempotency.
  7. Test locally by tunneling with ngrok. See local testing.
Webhook event types
Event TypePayloadWhen Triggered
post_call_transcriptionFull conversation transcript, analysis, metadataAfter Conversational AI call ends
post_call_audioBase64-encoded call audio, minimal metadataAfter call ends (if audio recording enabled)
call_initiation_failureFailure reason, metadataWhen an outbound call fails to connect
speech_to_text.completedTranscription result, word timestampsAsync STT job completes
Signature verification skeleton
typescript
// src/elevenlabs/webhook-verify.ts — Header: t=<unix_ts>,v1=<hex_sig>
export function verifyWebhookSignature(rawBody, signatureHeader, secret) {
  const parts = new Map(signatureHeader.split(",").map(p => {
    const [k, ...v] = p.split("="); return [k, v.join("=")];
  }));
  const timestamp = parts.get("t"), signature = parts.get("v1");
  if (Math.floor(Date.now() / 1000) - parseInt(timestamp) > 300) {
    return { valid: false, reason: "Timestamp too old" };   // replay guard
  }
  const expected = crypto.createHmac("sha256", secret)
    .update(`${timestamp}.${rawBody.toString()}`).digest("hex");
  return { valid: crypto.timingSafeEqual(
    Buffer.from(signature, "hex"), Buffer.from(expected, "hex")) };
}

See references/implementation.md for the production-hardened version with full error handling.

Output

Applying this skill produces:

  • src/elevenlabs/webhook-verify.ts — reusable HMAC-SHA256 verifier with replay protection and timing-safe comparison.
  • src/api/webhooks/elevenlabs.ts — Express route that verifies signatures, acks 200 immediately, and routes events to per-type handlers.
  • Per-event handler functions (handleTranscription, handleCallAudio, handleCallFailure, handleSTTCompleted) extracting the fields each payload carries.
  • An idempotency wrapper keyed on event ID so retried deliveries are processed once.

At runtime a verified delivery returns { "received": true } with HTTP 200; a bad signature or expired timestamp returns HTTP 401 { "error": "Invalid signature" }.

Show full SKILL.md (180 more words)Show less

Webhook Reliability

BehaviorDetail
Retry policyElevenLabs retries failed deliveries
Auto-disableAfter 10 consecutive failures AND 7+ days since last success
TimeoutYour endpoint must respond within a few seconds
Re-enableManually re-enable in dashboard after fixing the endpoint
AuthenticationHMAC-SHA256 via ElevenLabs-Signature header

Error Handling

IssueCauseSolution
Signature mismatchWrong secret or body parsingUse express.raw(), verify secret matches dashboard
Webhook auto-disabled10+ consecutive failuresFix endpoint, re-enable in dashboard
Duplicate eventsRetried deliveryImplement idempotency with event ID tracking
Handler timeoutSlow processingReturn 200 immediately, process async
Replay attackOld timestamp reusedCheck timestamp age (reject > 5 min)

Examples

Route a decoded event to the right handler:

typescript
switch (event.type || event.event_type) {
  case "post_call_transcription": await handleTranscription(event); break;
  case "post_call_audio":         await handleCallAudio(event);     break;
  case "call_initiation_failure": await handleCallFailure(event);   break;
  case "speech_to_text.completed": await handleSTTCompleted(event); break;
  default: console.log("Unhandled event type:", event.type);
}

Simulate a delivery locally with curl:

bash
curl -X POST http://localhost:3000/webhooks/elevenlabs \
  -H "Content-Type: application/json" \
  -H "ElevenLabs-Signature: t=$(date +%s),v1=test" \
  -d '{"type":"speech_to_text.completed","data":{"text":"Hello world"}}'

Full per-event handlers (transcript, audio, call-failure, STT) with the exact fields each payload carries are in references/examples.md.

Resources

Next Steps

For performance optimization, see the elevenlabs-performance-tuning skill, which covers connection pooling and batching to keep webhook handlers fast enough to ack within the ElevenLabs timeout window.

© jeremylongshore, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in skills/.curated/elevenlabs-webhooks-events of jeremylongshore/tons-of-skills-marketplace.

  • SKILL.md
  • references/examples.md
  • references/implementation.md

Open the folder on GitHubat commit cfae287

Compare with similar skills

Elevenlabs Webhooks Events next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Elevenlabs Webhooks Events compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Elevenlabs Webhooks Events this skilljeremylongshore/tons-of-skills-marketplace2.8k—~1.8kAutomated safety check: PassMIT
Integrate Whatsapp Callinggokapso/agent-skills177—~2.1kAutomated safety check: PassNone
Elevenlabs Agentsjezweb/claude-skills1.1k—~3.3kAutomated safety check: PassMIT
AI SDK Developmenttrypostit/trypost6921 repos~3.5kAutomated safety check: PassMIT
Speech Engineelevenlabs/skills482—~2.5kAutomated safety check: WarnMIT
Agentselevenlabs/skills482—~6.5kAutomated safety check: PassMIT

Similar skills

  • Integrate Whatsapp Calling

    gokapso/agent-skills

    Connect voice agents to WhatsApp Calling through Kapso. An agent skill from gokapso/agent-skills.

    177 GitHub stars~2.1k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Elevenlabs Agents

    jezweb/claude-skills

    Build conversational AI voice agents on the ElevenLabs platform.

    1.1k GitHub stars~3.3k tokensUpdated 2 days ago
    AI & LLM EngineeringAuto-check passed
  • AI SDK Development

    trypostit/trypost

    TRIGGER when working with ai-sdk which is Laravel official first-party AI SDK.

    692 GitHub starsUsed in 1 repo~3.5k tokens
    AI & LLM EngineeringAuto-check passed
  • Speech Engine

    elevenlabs/skills

    Add real-time voice conversations to a custom agent runtime with ElevenLabs Speech Engine.

    482 GitHub stars~2.5k tokensUpdated yesterday
    Media & CreativeAuto-check: warnings
  • Agents

    elevenlabs/skills

    Build voice AI agents with ElevenLabs. An agent skill from elevenlabs/skills.

    482 GitHub stars~6.5k tokensUpdated yesterday
    AI & LLM EngineeringAuto-check passed
  • Setup API Key

    elevenlabs/skills

    Guides users through setting up an ElevenLabs API key for REST API and SDK workflows.

    482 GitHub stars~954 tokensUpdated yesterday
    Media & CreativeAuto-check: notes

More from jeremylongshore/tons-of-skills-marketplace

All 3,342 skills in this repo
  • Performing Security Code Review

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to conduct a security-focused code review using the security-agent plugin.

    2.8k GitHub starsUsed in 2 repos~1.3k tokens
    Auto-check: notes
  • Adapting Transfer Learning Models

    jeremylongshore/tons-of-skills-marketplace

    Build this skill automates the adaptation of pre-trained machine learning models using transfer learning techniques.

    2.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Agent Context Loader

    jeremylongshore/tons-of-skills-marketplace

    Execute proactive auto-loading: automatically detects and loads agents.md files.

    2.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Aggregating Performance Metrics

    jeremylongshore/tons-of-skills-marketplace

    Aggregate and centralize performance metrics from applications, systems, databases, caches, and services.

    2.8k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Analyzing Capacity Planning

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to analyze capacity requirements and plan for future growth.

    2.8k GitHub stars~947 tokensUpdated today
    Auto-check passed
  • Analyzing Database Indexes

    jeremylongshore/tons-of-skills-marketplace

    Process use when you need to work with database indexing. An agent skill from jeremylongshore/tons-of-skills-marketplace.

    2.8k GitHub stars~2k tokensUpdated today
    Auto-check passed

Works with

Questions about Elevenlabs Webhooks Events

What does Elevenlabs Webhooks Events do?

Implement ElevenLabs webhook HMAC signature verification and event handling. Elevenlabs Webhooks Events is an agent skill from jeremylongshore/tons-of-skills-marketplace. Implement ElevenLabs webhook HMAC signature verification and event handling.

When should I use Elevenlabs Webhooks Events?

Elevenlabs Webhooks Events fits situations like: setting up webhook endpoints for transcription completion; agent conversation events from ElevenLabs; with elevenlabs webhook; elevenlabs events.

How do I install Elevenlabs Webhooks Events in Claude Code?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill elevenlabs-webhooks-events -a claude-code`. Or copy the skill folder (skills/.curated/elevenlabs-webhooks-events in jeremylongshore/tons-of-skills-marketplace) into .claude/skills/elevenlabs-webhooks-events in your project. Claude Code loads it when a task matches its description.

How do I install Elevenlabs Webhooks Events in Codex?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill elevenlabs-webhooks-events -a codex`. Or copy the skill folder (skills/.curated/elevenlabs-webhooks-events in jeremylongshore/tons-of-skills-marketplace) into .agents/skills/elevenlabs-webhooks-events in your project. Codex loads it when a task matches its description.

Can I use Elevenlabs Webhooks Events in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill elevenlabs-webhooks-events -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/elevenlabs-webhooks-events, .gemini/skills/elevenlabs-webhooks-events, .github/skills/elevenlabs-webhooks-events and .opencode/skills/elevenlabs-webhooks-events in your project.

What does Elevenlabs Webhooks Events need to run?

Going by SKILL.md and its folder, Elevenlabs Webhooks Events needs the command-line tools its instructions call (curl). Its frontmatter pre-approves these tools: Read, Write, Edit, Bash(curl:*). Compatibility (from SKILL.md): Designed for Claude Code.

Does Elevenlabs Webhooks Events access the network?

SKILL.md names 1 domain. As links in the text: elevenlabs.io. This is read from the text; nothing was executed.

Is Elevenlabs Webhooks Events safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Elevenlabs Webhooks Events use?

Elevenlabs Webhooks Events is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Elevenlabs Webhooks Events use?

About 1.8k tokens (SKILL.md is roughly 7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.8k tokens, read only when the agent opens those files.

What are the alternatives to Elevenlabs Webhooks Events?

Skills that share tags, products or a category with Elevenlabs Webhooks Events: Integrate Whatsapp Calling (gokapso/agent-skills, 177 stars), Elevenlabs Agents (jezweb/claude-skills, 1.1k stars), AI SDK Development (trypostit/trypost, 692 stars) and Speech Engine (elevenlabs/skills, 482 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Elevenlabs Webhooks Events?

jeremylongshore (a GitHub user) maintains it in jeremylongshore/tons-of-skills-marketplace, which has 2,827 GitHub stars. The repository holds 3,342 skills in this directory. The repository was last updated on October 10, 2026.

Source: jeremylongshore/tons-of-skills-marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.