Learn how to set up and manage webhooks in your Pivot organization to receive real-time notifications when events occur.
Introduction to Webhooks
Webhooks allow your organization to receive real-time notifications when specific events occur in Pivot. Instead of polling the API for changes, webhooks push data to your server automatically, enabling efficient integrations and automations.
Key Features
Real-time notifications: Get instant updates when events occur
Event filtering: Subscribe only to the events you care about
Secure delivery: All webhooks are signed with HMAC-SHA256 for verification
Delivery logging: View delivery history and troubleshoot issues
Automatic retries: Failed deliveries are automatically retried with exponential backoff
Who Can Manage Webhooks
Only organization Admins and Owners can create, edit, or delete
webhooks. Viewers can see the list of webhooks but cannot modify them.
Accessing Webhook Management
1
Open the Organization Admin Page
From the sidebar menu, click your profile picture, then select Organization admin and choose your organization.
2
Navigate to Integrations
In the Organization Admin panel, click on the Integrations tab.
3
Select Webhooks
Within the Integrations section, you’ll find the Webhooks panel where you can view, create, and manage your organization’s webhooks.
Creating a Webhook
1
Click Add Webhook
Click the Add Webhook button to open the webhook creation form.
2
Enter Webhook Details
Fill in the following information:
Name: A descriptive name for your webhook (e.g., “Slack Notifications”)
Description: Optional notes about what this webhook is used for
Endpoint URL: The HTTPS URL where webhook payloads will be sent
The endpoint URL must use HTTPS for security. HTTP URLs are not supported.
3
Configure Subject
Select what entity you want to receive notifications about:
Subject Type: Choose between “Room” or “Space”
Subject ID: Enter the UUID of the room or space
4
Select Event Types
Choose which events should trigger the webhook:
Message Sent: Triggered when a new message is sent in the subscribed room
Room Recording Transcript Published: Triggered when a recording transcript becomes available
5
Save and Copy Secret
After clicking Create, you’ll be shown the webhook secret. This secret is used to verify webhook signatures.
Important: The webhook secret is only shown once during creation. Copy
and store it securely - you won’t be able to view it again.
Editing a Webhook
1
Find the Webhook
In the webhooks list, locate the webhook you want to edit.
2
Click the Edit Button
Click the Edit icon (pencil) in the webhook row.
3
Modify Settings
You can update:
Name and Description
Endpoint URL
Status: Toggle between Active and Inactive
Event Types: Add or remove event subscriptions
4
Save Changes
Click Save to apply your changes.
The webhook secret cannot be changed. If you need to rotate the secret,
delete the webhook and create a new one.
Viewing Webhook Logs
1
Click the Logs Button
In the webhooks list, click the Page icon to view delivery logs for a specific webhook.
2
Review Delivery History
The logs show:
Event Type: What event triggered the delivery
Timestamp: When the delivery was attempted
Status: Whether the delivery succeeded or failed
Response Code: The HTTP status code from your server
Error Message: Details if the delivery failed
Webhook Security
Verifying Webhook Signatures
Every webhook request includes a signature header that you should verify to ensure the request came from Pivot:
Extract the X-Pivot-Signature header from the request
Compute the HMAC-SHA256 of the raw request body using your webhook secret
Compare your computed signature with the header value
Always verify signatures before processing webhook payloads
Store secrets securely using environment variables or a secrets manager
Use HTTPS for all webhook endpoints
Respond quickly - return a 2xx status code within 15 seconds
Process asynchronously - queue webhook processing for complex operations
Retry Behavior
When webhook delivery fails, Pivot automatically retries with exponential backoff:
Retry
Delay
1st
1 minute
2nd
5 minutes
3rd
30 minutes
4th
2 hours
5th
12 hours
After all retries are exhausted, organization admins will receive an email notification about the failed webhook.
To avoid retries, ensure your endpoint returns a 2xx status code within 15 seconds. Retries will continue until a successful response is received or the maximum retry count is reached.
Troubleshooting
Common Issues
Verify the webhook status is Active
Check that the subject ID (room/space) is correct
Ensure at least one event type is selected
Verify your endpoint is accessible from the internet
Ensure you’re using the correct webhook secret
Verify you’re computing the signature on the raw request body, not a parsed JSON object
Check that you’re using HMAC-SHA256, not another algorithm
Check if your endpoint is returning a 2xx status code
Verify your endpoint responds within 15 seconds
Review the error message in the logs for specific details
Test your endpoint manually with a sample payload
Deleting a Webhook
1
Find the Webhook
In the webhooks list, locate the webhook you want to delete.
2
Click Delete
Click the Trash icon in the webhook row.
3
Confirm Deletion
Confirm the deletion when prompted. This action cannot be undone.
Deleting a webhook immediately stops all event deliveries. Any pending retries will also be cancelled.