Webhook Events
Webhooks are the primary way Skribby notifies your application of asynchronous events. All webhook requests are POST requests sent to the webhook_url specified during bot creation.
Event Envelope
Every webhook payload follows this structure:
{
"bot_id": "uuid",
"type": "event_type",
"data": { ... },
"custom_metadata": { ... }
}
Available Events
status_update
Sent whenever the bot's status changes in its lifecycle (e.g., from recording to processing). This is the most important event for most integrations, as it signals when post-call assets are ready.
Data Payload:
old_status: Previous state.new_status: Current state.stop_reason: (Optional) If the status becomesfinishedornot_admitted, this explains why (e.g.,meeting_ended,request_denied).
Example: Bot Finished
When a bot reaches the finished status, the webhook payload notifies you that the transcript and recording are now available for retrieval via the API.
{
"bot_id": "550e8400-e29b-41d4-a716-446655440000",
"type": "status_update",
"data": {
"old_status": "transcribing",
"new_status": "finished",
"stop_reason": "meeting_ended"
},
"custom_metadata": {
"internal_id": "meeting_123"
}
}
Example: Bot Not Admitted
If a bot is denied entry or times out in the lobby, you'll receive a not_admitted status with a corresponding reason.
{
"bot_id": "550e8400-e29b-41d4-a716-446655440000",
"type": "status_update",
"data": {
"old_status": "joining",
"new_status": "not_admitted",
"stop_reason": "request_denied"
}
}
Important Notes
- Participant & Chat Events: These are not sent via webhooks. To receive live participant joins or chat messages as they happen, you must use the Real-time WebSockets.
- Transcription Availability: Regardless of whether you use a real-time or post-call model, the final, full transcript is always made available in the bot object once the status reaches
finished. You can retrieve it via theGET /bot/{id}endpoint. - Reliability: Always return a
200 OKresponse to Skribby webhooks. If your server returns an error or times out, Skribby may retry the delivery.