VoiceRouter

deepgram-webhook

Voice Router SDK - Webhook Normalization / deepgram-webhook

deepgram-webhook

Classes

DeepgramWebhookHandler

Deepgram webhook handler

Handles webhook callbacks from Deepgram API. Deepgram sends the full transcription response to the callback URL when transcription is complete.

Note: Deepgram does not provide webhook signature verification. For security, use HTTPS and validate the request source.

Examples

import { DeepgramWebhookHandler } from '@meeting-baas/sdk';

const handler = new DeepgramWebhookHandler();

// Validate webhook
const validation = handler.validate(req.body);
if (!validation.valid) {
  return res.status(400).json({ error: validation.error });
}

// Parse webhook
const event = handler.parse(req.body);
console.log('Event type:', event.eventType);
console.log('Transcript:', event.data?.text);
console.log('Speakers:', event.data?.speakers);
const event = handler.parse(req.body);

if (event.eventType === 'transcription.completed') {
  console.log('Request ID:', event.data?.id);
  console.log('Transcript:', event.data?.text);
  console.log('Duration:', event.data?.duration);
  console.log('Confidence:', event.data?.confidence);

  // Access word-level timestamps
  event.data?.words?.forEach(word => {
    console.log(`${word.text}: ${word.start}s - ${word.end}s`);
  });

  // Access speaker diarization
  event.data?.speakers?.forEach(speaker => {
    console.log(`Speaker ${speaker.speaker}: ${speaker.text}`);
  });
}

Extends

Constructors

Constructor

new DeepgramWebhookHandler(): DeepgramWebhookHandler

Returns

DeepgramWebhookHandler

Inherited from

BaseWebhookHandler.constructor

Methods

createErrorEvent()

protected createErrorEvent(payload, errorMessage): UnifiedWebhookEvent

Helper method to create error response

Parameters
ParameterType
payloadunknown
errorMessagestring
Returns

UnifiedWebhookEvent

Inherited from

BaseWebhookHandler.createErrorEvent

matches()

matches(payload, _options?): boolean

Check if payload matches Deepgram webhook format

Parameters
ParameterType
payloadunknown
_options?{ queryParams?: Record<string, string>; userAgent?: string; }
_options.queryParams?Record<string, string>
_options.userAgent?string
Returns

boolean

Overrides

BaseWebhookHandler.matches

parse()

parse(payload, _options?): UnifiedWebhookEvent

Parse Deepgram webhook payload to unified format

Parameters
ParameterType
payloadunknown
_options?{ queryParams?: Record<string, string>; }
_options.queryParams?Record<string, string>
Returns

UnifiedWebhookEvent

Overrides

BaseWebhookHandler.parse

validate()

validate(payload, options?): WebhookValidation

Validate webhook payload structure

Checks if payload has required fields and correct types

Parameters
ParameterTypeDescription
payloadunknownRaw webhook payload
options?{ queryParams?: Record<string, string>; userAgent?: string; }Optional context (query params, headers, etc.)
options.queryParams?Record<string, string>-
options.userAgent?string-
Returns

WebhookValidation

Validation result with details

Inherited from

BaseWebhookHandler.validate

verify()

verify(): boolean

Verify Deepgram webhook signature

Note: Deepgram does not currently support webhook signature verification. For security, use HTTPS and validate the request source (IP allowlist, etc.).

Returns

boolean

Always returns true (no verification available)

Overrides

BaseWebhookHandler.verify

Properties

provider

readonly provider: TranscriptionProvider = "deepgram"

Provider name

Overrides

BaseWebhookHandler.provider

Functions

createDeepgramWebhookHandler()

createDeepgramWebhookHandler(): DeepgramWebhookHandler

Factory function to create a Deepgram webhook handler

Returns

DeepgramWebhookHandler

On this page