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 today

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?