If your sales team works in an in-house CRM, an ERP or a custom admin panel, you can integrate missed calls directly with our signed webhook and REST API, or we build the bridge for you, usually within a few days. This page is the developer view: payload, signature, retries and the patterns that keep it reliable.
One missed call becomes one record, tagged with the campaign that produced it.
Caller's mobile number in +91 E.164 format. Your phone or contact key.
The campaign name you gave the number dialled. Use it as the lead source.
When the missed call happened (ISO 8601). Use it for SLA and speed-to-call reports.
Unique per call and stable across retries and replays. Your idempotency key.
Verify the signature, write the raw event to a queue or table, and reply 2xx within 5 seconds. Do CRM writes in a worker.
Put a unique index on call_sid. 6 delivery attempts over about 15 minutes, plus manual replays, then never create duplicates.
Numbers arrive in +91 format. Normalise the numbers already in your CRM the same way before matching repeat callers.
After downtime, use GET /missed-calls or the CSV export to reconcile, or replay events in bulk from the delivery log.
Not every team has a developer free for an integration. Tell us how leads are created in your system, whether that is a REST endpoint, a database table, a Google Sheet backend or an ERP import, and our team connects the missed call webhook to it, usually within a few days. You keep the same signed delivery, retries and replay; we handle the mapping and testing with you.
Every missed call is POSTed as JSON within seconds. Full field reference is in the docs at /docs/missed-call; test your signature logic with the free webhook signature verifier.
{
"event": "call.missed",
"timestamp": "2026-10-20T10:42:13Z",
"data": {
"call_sid": "3f6c2a1e-8b4d-4c1a-9e2f-7d5b0a9c1e44",
"from": "+919876543210",
"to": "+918045678901",
"direction": "inbound",
"status": "missed",
"phone_number_id": "b21d7e90-5c3a-4f8e-a6d2-91c4e0f37a15",
"phone_number_name": "Diwali hoarding - Pune"
}
}Hash the raw body, compare in constant time, acknowledge fast and dedupe on call_sid.
// Node.js (Express): verify X-Edesy-Signature over the RAW body
const crypto = require("crypto");
app.post("/webhooks/missed-call", express.raw({ type: "application/json" }), (req, res) => {
const header = req.get("X-Edesy-Signature") || "";
const expected = "sha256=" +
crypto.createHmac("sha256", process.env.EDESY_WEBHOOK_SECRET)
.update(req.body) // Buffer, not re-serialised JSON
.digest("hex");
const ok = header.length === expected.length &&
crypto.timingSafeEqual(Buffer.from(header), Buffer.from(expected));
if (!ok) return res.status(401).end();
res.status(200).end(); // acknowledge fast (within 5 s)
const event = JSON.parse(req.body.toString("utf8"));
queueLead(event.data.call_sid, event.data.from); // dedupe on call_sid
});Sign in at missedcall.edesy.in, complete KYC and buy a number per campaign.
Set your webhook URL and signing secret in the portal, or create a subscription via /webhooks/subscriptions.
Check X-Edesy-Signature over the raw body, store the event keyed on call_sid, reply 2xx.
Use the test button, give a real missed call, then replay an event to confirm your dedupe works. Or hand all of this to us.
Share your use case and volume. We reply within one working day with a setup plan and pricing.
Missed call service is live and self-serve at missedcall.edesy.in: complete KYC, pick a number and start capturing callers the same day. Everything in the second list we set up for your account on request - tell us what you need.
Auto-reject missed call number
Calls are cut with a busy tone before they are answered, so callers are never charged.
Instant caller capture
Every missed call is logged with the caller number, time and the number they dialled.
Campaign dashboard and CSV export
Totals, unique callers and a daily chart per number; download every lead as CSV.
Real-time webhook
Signed call.missed events to your CRM or backend, with retries, replay and no charge for failed deliveries.
REST API
List, summarise and export missed calls and manage numbers and plans by API key.
Edesy CRM
Send every missed caller into Edesy CRM as a lead (free CRM plan available).
Pricing
Number Rs 499/month plus Rs 0.30 per missed call sent to your webhook - the missed-call list and CSV are free without a webhook. Unlimited plan Rs 1,498/month per number (fair use 1,00,000 calls, then Rs 0.10). Prepay 3, 6 or 12 months for up to 25% off. Prices exclude GST; KYC required before buying a number.
SMS or WhatsApp reply
Send a message back to every missed caller.
Automatic AI voice callback
An AI voice agent calls each missed caller back within a minute.
Salesforce, Zoho, HubSpot or in-house CRM
We connect missed-call leads to your CRM for you, usually within a few days.
Repeat-caller de-duplication
Count a caller once within a time window you choose.
Missed call verification
Verify a user by a missed call from their registered mobile instead of an OTP.
Toll-free and short / premium numbers
Easy-to-remember campaign numbers.
Explore more comparisons, alternatives, and resources
CRM
Missed call guides
Related products
Buy a number today and tell us your CRM; we connect it, usually within a few days.