Missed-call leads reach any CRM through the signed call.missed webhook and the REST API. You have two options.
Option 1: we set it up for you#
Tell us your CRM and how you want leads created, and we connect it for your account, usually within a few days, using our webhook and API. This covers Salesforce, Zoho CRM, HubSpot, LeadSquared, Freshsales, Pipedrive, Bitrix24, Odoo and in-house CRMs. Request it from the CRM integration page.
This is a done-for-you connection built on the webhook, not an app from a CRM marketplace.
Option 2: build it yourself#
Point the webhook at a small service of your own (or an automation tool you already use) that creates the record in your CRM:
- Receive the
call.missedPOST and verify the signature. - Reply 2xx straight away.
- Skip
call_sidvalues you have already processed (why). - Create or update the lead using your CRM's own API.
Field mapping#
| Missed call field | Typical CRM field |
|---|---|
data.from |
Mobile / Phone (search on it first if you want one record per caller) |
data.phone_number_name |
Lead source or campaign |
data.to |
Tracking number, or a custom field |
data.call_sid |
External ID (for de-duplication) |
timestamp |
Created date or first-contact time (UTC) |
Most CRMs also need a name or last name on a lead. A missed call has only a number, so use a placeholder such as "Missed call lead" and let your team update it after calling back.
Example (Node.js)#
// After verifying the signature and replying 200:
const { from, call_sid, phone_number_name } = event.data;
if (await alreadyProcessed(call_sid)) return;
await yourCrm.createLead({
lastName: "Missed call lead",
phone: from,
leadSource: phone_number_name,
externalId: call_sid,
});
Catch up after downtime#
If your connector was down, replay failed deliveries, or pull the gap with GET /missed-calls using start_date and end_date.
No CRM yet?#
Use Edesy CRM. It has a free plan and takes missed calls with no code.