Skip to main content

How to Set Up and Use Webhooks in Speak AI

Set up webhooks to receive real-time notifications when media is transcribed, analyzed, or deleted. Includes payload details, event types, and troubleshooting.

Written by Speak Ai
Updated over 3 weeks ago

How to Set Up and Use Webhooks in Speak AI

Overview

Webhooks let you receive real-time notifications from Speak AI whenever something happens in your account, like a transcription completing or an analysis finishing. This lets you automatically trigger actions in your own systems without polling our API.

Setting up a webhook

  1. Go to Developers > Webhooks in your dashboard

  2. Click + Add webhook

  3. Enter your Endpoint URL (the HTTPS URL on your server that will receive notifications)

  4. Add a Description (optional)

  5. Select the Events to send (see list below)

  6. Click Save

Available events

Media events:

  • media.created - A new media file was uploaded

  • media.analyzed - Transcription and analysis completed

  • media.reanalyzed - Media was re-analyzed

  • media.failed - Processing failed

  • media.deleted - Media was deleted

Text events:

  • text.created, text.analyzed, text.reanalyzed, text.failed, text.deleted

Recorder events:

  • embed_recorder.created, embed_recorder.deleted, embed_recorder.recording_received

Webhook payload

Each webhook sends a POST request with a JSON payload. The media.analyzed event provides the most complete data, including:

  • Transcript and insights in the insight object

  • Question/answer responses (from AI Chat or Recorder) in the metaData field

  • Direct MP3 link in the sourceUrl or mediaUrl field (may be a temporary signed URL)

Example payload structure:

{  "eventType": "media.analyzed",  "mediaId": "...",  "data": {    "insight": { ... },    "sourceUrl": "https://.../file.mp3",    "metaData": { ... }  }}

Troubleshooting

  • Not receiving data? Make sure your endpoint returns a 200 OK status immediately. Slow responses cause timeouts and retries.

  • Missing question answers? Listen to the media.analyzed event (not media.created). Answers are only available after analysis completes.

  • No MP3 link? Check the sourceUrl field in the payload. Some URLs are temporary signed URLs that expire after a period.

For API documentation, visit docs.speakai.co. Need help? Send us a message.

Did this answer your question?