Setting up a webhook
Configure the endpoint
Provide:
- URL — the HTTPS endpoint where Mavio sends events (must be publicly accessible)
- Events — select which events trigger this webhook (see event types below)
- Description — optional label for this endpoint
Receive the signing secret
Mavio generates a signing secret for this endpoint. Copy it and store it securely. You use this to verify that incoming requests are genuinely from Mavio.
Event types
| Event | Trigger | Payload includes |
|---|---|---|
meeting.started | A meeting recording begins | Meeting ID, title, participants, recording method |
meeting.completed | A meeting recording ends | Meeting ID, title, duration, participant count |
transcript.ready | Transcription is complete | Meeting ID, transcript ID, language, word count |
summary.ready | AI summary is generated | Meeting ID, summary text, key topics |
action_items.ready | Action items are extracted | Meeting ID, action items array with assignees |
minutes.ready | Meeting minutes are generated | Meeting ID, minutes content |
diagram.ready | A diagram has been generated | Meeting ID, diagram ID, diagram type |
speaker.identified | A new speaker is identified | Meeting ID, speaker profile ID, confidence |
meeting.shared | A meeting is shared | Meeting ID, shared with user ID, permission level |
meeting.deleted | A meeting is deleted | Meeting ID, deleted by user ID |
meeting.completed payload example
meeting.completed payload example
transcript.ready payload example
transcript.ready payload example
action_items.ready payload example
action_items.ready payload example
Payload format
All webhook payloads follow this structure:HTTP headers
Each webhook request includes the following headers:Signature verification
Verify webhook signatures to ensure requests are genuinely from Mavio. Each request includes an HMAC-SHA256 signature in theX-Mavio-Signature header.
Retry logic
If your endpoint does not return a2xx response, Mavio retries the delivery with exponential backoff:
| Attempt | Delay |
|---|---|
| 1st retry | 1 minute |
| 2nd retry | 5 minutes |
| 3rd retry | 30 minutes |
| 4th retry | 2 hours |
| 5th retry | 12 hours |
If an endpoint consistently fails (10+ consecutive failures), Mavio disables it and sends an email notification. Re-enable it from the webhook settings after fixing the issue.
Troubleshooting
Endpoint not receiving events
Endpoint not receiving events
Verify the URL is publicly accessible over HTTPS. Check that your server responds with a
200 status within 10 seconds. Use the Send Test Event button to debug.Signature verification failing
Signature verification failing
Ensure you are comparing against the raw request body (not a parsed/re-serialized version). The signature is computed over the exact bytes sent by Mavio.
Duplicate events
Duplicate events
Webhook deliveries are at-least-once. Your endpoint may receive the same event more than once during retries. Use the
X-Mavio-Delivery header as an idempotency key to deduplicate.What IP addresses do webhooks come from?
What IP addresses do webhooks come from?
Mavio sends webhooks from a fixed set of IP addresses listed in the webhook settings page. You can allowlist these in your firewall.
Can I pause webhooks temporarily?
Can I pause webhooks temporarily?
Yes. Toggle the Active switch on any endpoint to pause deliveries. Events that occur while paused are not queued and are skipped.