CRM Integration

Missed Call Integration for a Custom CRM

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.

Fields in every call.missed event

One missed call becomes one record, tagged with the campaign that produced it.

data.from

Caller's mobile number in +91 E.164 format. Your phone or contact key.

data.phone_number_name

The campaign name you gave the number dialled. Use it as the lead source.

timestamp

When the missed call happened (ISO 8601). Use it for SLA and speed-to-call reports.

data.call_sid

Unique per call and stable across retries and replays. Your idempotency key.

Patterns that work in production

Acknowledge, then queue

Verify the signature, write the raw event to a queue or table, and reply 2xx within 5 seconds. Do CRM writes in a worker.

Idempotent writes

Put a unique index on call_sid. 6 delivery attempts over about 15 minutes, plus manual replays, then never create duplicates.

Match on normalised phone

Numbers arrive in +91 format. Normalise the numbers already in your CRM the same way before matching repeat callers.

Backfill with the API

After downtime, use GET /missed-calls or the CSV export to reconcile, or replay events in bulk from the delivery log.

Or let us build the bridge

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.

Payload your endpoint receives

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"
  }
}

Minimal verified handler (Node.js)

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
});

How the connection is set up

  1. Step 1 of 4: Buy a number

    Sign in at missedcall.edesy.in, complete KYC and buy a number per campaign.

  2. Step 2 of 4: Add your endpoint

    Set your webhook URL and signing secret in the portal, or create a subscription via /webhooks/subscriptions.

  3. Step 3 of 4: Verify and store

    Check X-Edesy-Signature over the raw body, store the event keyed on call_sid, reply 2xx.

  4. Step 4 of 4: Test and replay

    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.

Tell us about your calls

Share your use case and volume. We reply within one working day with a setup plan and pricing.

Available Now vs Built On Request

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.

Available now

  • 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.

Built on request

  • 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.

Need something from the on-request list?

Tick what you need. We prioritise what customers ask for and reply with a timeline and price.

Capabilities you need

Frequently Asked Questions

Get missed call leads into your CRM

Buy a number today and tell us your CRM; we connect it, usually within a few days.