Webhook Integration Guide
This guide explains how to securely and reliably receive Birdie screen recording webhooks in your backend.
Purpose
This webhook is triggered each time a new video recording is received in your Birdie workspace. It allows you to automate workflows, store references, or trigger actions when a video becomes available.
Webhook Delivery
Method:
POST
Protocol:
HTTPS
onlyContent-Type:
application/json
Birdie sends a signed POST request to the endpoint URL you register. The JSON body contains data about the received video.
Get Started
Head to your Birdie workspace settings page and enable Receive recordings via a Webhook. You must validate your URL endpoint by returning a valid response before saving. From there copy your Singing Secret to setup Signature Verification.
Signature Verification
To ensure the webhook is authentic, each request includes a Signature
HTTP header. This is a HMAC-SHA256 hash of the JSON payload using your Signing Secret.
Signature: <HMAC_SHA256_SIGNATURE>
Hash generation formula:
HMAC_SHA256(<payload>, your_signing_secret)
Verifying Signature - Code Examples
Hash the Json Payload with your Signing Secret, and make sure it match the Signature
Header.
const crypto = require('crypto');
app.post('/webhook', express.json(), (req, res) => {
const signature = req.header('Signature');
const payload = JSON.stringify(req.body);
const expected = crypto
.createHmac('sha256', process.env.WEBHOOK_SECRET)
.update(payload)
.digest('hex');
if (signature !== expected) {
return res.status(401).send('Invalid signature');
}
res.send('ok');
});
Webhook Response Requirements
Your webhook handler must:
Return an HTTP status code between 200 and 299 to confirm successful delivery.
Avoid redirects, errors, or timeouts — otherwise the attempt is marked as failed.
Retry Policy & Backoff
Birdie uses exponential backoff for failed webhook deliveries. Each webhook will be retried up to 3 times, as follows:
1st attempt: immediately
2nd attempt: 10 seconds later
3rd attempt: 100 seconds later
If all attempts fail, the webhook is marked as permanently failed.
Auto-Disabling Policy
To prevent loops or spam, Birdie disables your webhook endpoint automatically after 10 consecutive failures. You will be able to re-enable the webhook in your Birdie dashboard.
Need Help?
You can use any webhook testing service of your choice to test and introspect Birdie calls, for example https://webhook.site
If needed, email us at support@birdie.so we’ll help you resolve it quickly.
Last updated