Developer API

Webhook Integration Guide

Connect CallSync to your CRM, ERP, or custom apps. Receive real-time data for every call, recording, and AI analysis automatically.

Integrate Now

Live Payload Playground

Explore real-time event data and simulate webhook delivery to your own server instantly.

1. Global Call Type

2. Live Simulator

3. Select Event

New Call Log

call_logged

Recording Sync

recording_updated

AI Analysis Result

ai_analysis

Caller Info Updated

caller_updated

Method

POST

Target URL

https://your-server.com/webhook

Header

X-CallSync-Signature
{
    "event": "call_logged",
    "type": "incoming",
    "org_id": "org_demo_123",
    "timestamp": "2026-04-28T11:58:13.000Z",
    "payload_id": "wh_live_call_logged",
    "data": {
        "call_details": {
            "call_id": 88231,
            "direction": "incoming",
            "type": "incoming",
            "status": "incoming",
            "duration_total": "124",
            "recording_url": "https://r2.callsyncapp.com/UPTOWN/8/2026_04/rec_88231.mp3",
            "file_status": "completed",
            "reviewed": false,
            "started_at": "2024-04-28T11:58:00Z"
        },
        "caller": {
            "phone": "+919876543210",
            "name": "John Doe"
        },
        "identity": {
            "id": "contact_9921",
            "name": "John Doe",
            "phone": "+919876543210",
            "email": "john.doe@example.com",
            "note": "VIP Corporate Account",
            "labels": [
                "high-value",
                "priority"
            ]
        },
        "ai_analysis": {
            "status": "pending"
        },
        "staff": {
            "id": "emp_7721",
            "name": "Rahul Sharma",
            "phone": "+918877665544",
            "email": "rahul@company.com"
        }
    }
}

Implementation Workflow

Setup your real-time integration in less than 2 minutes.

01

Add Endpoint

Go to Settings > Webhooks and click "New Endpoint". Provide your server URL.

02

Select Events

Choose which events you want to listen for (e.g., New Call Log, AI Analysis).

03

Secure & Test

Set a secret key for signature verification and send a test payload.

Security Protocol

Secure Your Endpoint

We include a signature in every request header to ensure that requests are coming from CallSync and haven't been tampered with.

X-CallSync-Signature

We hash the entire JSON body with your Webhook Secret using HMAC-SHA256 and send it in this header.

Implementation

Compute the HMAC-SHA256 of the raw request body using your secret and compare it with the signature header.

Node.js Verification Example

const crypto = require('crypto');

/**
 * Verifies the CallSync webhook signature
 * @param {string} rawBody - The raw request body (string)
 * @param {string} secret - Your Webhook Secret
 * @param {string} signature - The X-CallSync-Signature header
 */
function verifySignature(rawBody, secret, signature) {
  const hmac = crypto.createHmac('sha256', secret);
  const digest = hmac.update(rawBody).digest('hex');
  
  try {
    return crypto.timingSafeEqual(
      Buffer.from(digest, 'utf8'),
      Buffer.from(signature, 'utf8')
    );
  } catch (err) {
    return false;
  }
}

// Example: Express.js (Ensure you use raw body parsing)
app.post('/webhooks', (req, res) => {
  const signature = req.headers['x-callsync-signature'];
  const isValid = verifySignature(req.rawBody, process.env.WH_SECRET, signature);
  
  if (!isValid) return res.status(401).send('Invalid signature');
  // ... Handle event
});

Ready to automate your workflow?

Get your developer tokens and start building today.

Get API Access