Know the Moment Something Happens.
Get real-time notifications for calls, meetings, messages, AI events, and billing ā delivered straight to your application, the instant they happen.
What It Is
Webhooks let Calling Hub push real-time event notifications directly to your application's server ā so you don't have to constantly poll the API for updates.
Why Developers Use It
Building responsive apps means knowing instantly when a call ends, a message is delivered, or an AI summary is ready ā webhooks deliver that the moment it happens.
Key Capabilities
Instant Event Delivery
Real-time notifications pushed the moment an event occurs ā no polling required
Secure Callback Verification
Secret key signing for every webhook payload to prevent spoofing
Full Event Coverage
Voice, Video, Messaging, AI, and Billing events all supported out of the box
Easy Management
Create, update, enable, disable, or delete webhooks anytime from the dashboard
Automatic Retry
Failed deliveries are automatically retried with exponential backoff
Event History
View full delivery status and history for every webhook event
What's Inside
Supported events across all categories: ⢠Voice: Call Started, Ringing, Answered, Ended, Failed, Recording Ready ⢠Video: Meeting Started/Ended, Participant Joined/Left ⢠Messaging: SMS Sent/Delivered, WhatsApp Delivered, Email Delivered ⢠AI: Summary Ready, Transcript Ready, Translation Ready ⢠Billing: Payment Success/Failed, Subscription Renewed
Who It's For
Developers building automated workflows, CRM/HRMS integrations, and any application that needs to react to communication events in real time.
// Express.js webhook receiver
import express from 'express';
import { verifyWebhookSignature } from '@callinghub/sdk';
const app = express();
app.use(express.raw({ type: 'application/json' }));
app.post('/webhooks/calling-hub', (req, res) => {
const signature = req.headers['x-callinghub-signature'];
const isValid = verifyWebhookSignature(
req.body,
signature,
process.env.WEBHOOK_SECRET
);
if (!isValid) return res.status(401).send('Invalid signature');
const event = JSON.parse(req.body);
if (event.type === 'call.ended') {
console.log('Call ended:', event.data.callId);
// Trigger your CRM update, send summary, etc.
}
res.json({ received: true });
});Getting Started
Create a webhook
Add your callback URL and generate a secret key for payload signature verification
Select events
Choose which events to subscribe to ā from call events to billing notifications
Receive & verify
Process incoming payloads and verify the signature ā retries happen automatically if delivery fails