# Missed Call Leads Into Zoho, Salesforce, HubSpot

> How to get missed call leads into Zoho CRM, Salesforce or HubSpot: which object and fields to use, webhook middleware or API setup, duplicate handling, and a done-for-you option.

Source: https://edesy.in/blog/missed-call-leads-zoho-salesforce-hubspot

**Short answer:** in all three CRMs the pattern is the same. Our signed `call.missed` webhook goes to a
small integration (your middleware, a Zapier or Make scenario, or a service we set up) that searches the
CRM by phone, then creates a **Lead** (Zoho, Salesforce) or **Contact** (HubSpot) with the caller's phone
and your number label as the source. There is no marketplace app to install. If you want it done for
you, we connect it, usually within a few days.

[Get a Missed Call Number](https://missedcall.edesy.in/?utm_source=edesy.in&utm_medium=blog&utm_campaign=missed-call)
and tell us which CRM you use.

## What You Are Sending

Each missed call produces one event:

| Field | Meaning | Typical CRM use |
|---|---|---|
| `data.from` | Caller's number, +91 E.164 | Phone or Mobile field |
| `data.phone_number_name` | Your label for the number | Lead source or campaign |
| `data.to` | Which of your numbers was called | Optional custom field |
| `data.call_sid` | Unique call ID | Idempotency key in your integration |
| `timestamp` | Event time (UTC) | Enquiry date |

There is no name, email or message, because the caller only dialled. Plan for a placeholder name (for
example "Missed call lead") where the CRM requires one, and fill the real name after the callback.

## Three Ways to Set It Up

| Route | Effort | Good for |
|---|---|---|
| We set it up for you | Low for your team; usually within a few days | Most businesses |
| Webhook middleware (Zapier, Make, n8n) | Low to medium | Simple flows, low volume |
| Your own service using the CRM's API | Medium | Teams with developers, high volume, custom rules |

Whichever route, the integration should verify the `X-Edesy-Signature` HMAC, ignore duplicate
`call_sid`s, and search by phone before creating a record. See
[missed call webhook best practices](https://edesy.in/blog/missed-call-webhook-best-practices).

## Zoho CRM

**Object:** Leads module. Missed call callers are unqualified, which is exactly what Leads are for; they
convert to Contacts, Accounts and Deals after qualification.

**Fields to set:**

| Zoho field | Value |
|---|---|
| Last Name (required) | "Missed call lead" or the phone number until you know the name |
| Phone or Mobile | `data.from` |
| Lead Source | A picklist value such as "Missed Call", or `phone_number_name` if you add those values |
| Description or a custom field | Number called and time |
| Lead Owner | Via your assignment rules |

**Typical setup:** the integration calls Zoho CRM's REST API to search Leads by phone, then inserts or
updates. Zoho's API supports upserts with a duplicate check on chosen fields, which suits phone-keyed
leads. Assignment rules and workflow rules in Zoho can then create a "call back" task for the owner.

**Tips:** add one Lead Source picklist value per campaign number so Zoho reports show campaign
performance without custom work. See [missed call to Zoho CRM](https://edesy.in/missed-call-service/crm-integration/zoho-crm).

## Salesforce

**Object:** Lead. Use Campaign and Campaign Member if you already run campaign attribution in Salesforce.

**Fields to set:**

| Salesforce field | Value |
|---|---|
| LastName (required) | Placeholder until the callback |
| Company (required on Lead by default) | Placeholder such as "Unknown" if B2C |
| Phone or MobilePhone | `data.from` |
| LeadSource | "Missed Call" or the campaign label |
| Description or custom fields | Number called, time, `call_sid` |
| OwnerId | Via lead assignment rules |

**Typical setup:** the integration authenticates as a connected integration user and calls the Salesforce
REST API to query Leads by phone and create or update. Assignment rules route the lead; a Flow can create
a callback task or notify the owner. For campaign attribution, add the lead to the matching Campaign as a
Campaign Member.

**Tips:** configure a matching rule and duplicate rule on phone so repeat callers do not create clutter.
Phone formats vary in older data, so normalise to the +91 format in the integration before searching. See
[missed call to Salesforce](https://edesy.in/missed-call-service/crm-integration/salesforce).

## HubSpot

**Object:** Contact is the central record in HubSpot. Set lifecycle stage to lead. If your team uses
HubSpot's Leads object in the sales workspace, create a Lead associated with the Contact as well.

**Fields (properties) to set:**

| HubSpot property | Value |
|---|---|
| Phone number or Mobile phone number | `data.from` |
| First name / Last name | Optional placeholder |
| Lifecycle stage | Lead |
| A custom "Missed call campaign" property | `phone_number_name` |
| Contact owner | Via workflows or your rotation |

**Typical setup:** HubSpot de-duplicates contacts primarily by email, which missed call leads do not have.
The integration therefore searches contacts by phone through the CRM API first, then updates the existing
contact or creates a new one using a private app token. A HubSpot workflow can create a call task for the
owner.

**Tips:** use a dedicated property for the campaign label rather than overwriting HubSpot's own source
properties, which HubSpot sets from its own tracking. See
[missed call to HubSpot](https://edesy.in/missed-call-service/crm-integration/hubspot).

## Side-by-Side

| | Zoho CRM | Salesforce | HubSpot |
|---|---|---|---|
| Record to create | Lead | Lead (+ Campaign Member) | Contact (+ Lead if used) |
| Phone field | Phone / Mobile | Phone / MobilePhone | Phone number / Mobile phone number |
| Source field | Lead Source picklist | LeadSource picklist | Custom property |
| Required placeholders | Last Name | LastName, Company | None strictly |
| Duplicate handling | Search or upsert on phone | Matching and duplicate rules, or query first | Search by phone first |
| Follow-up automation | Workflow rules, assignment rules | Flow, assignment rules | Workflows |

## Repeat Callers

The same person may give several missed calls. Each is a new event with a new `call_sid`. Decide your rule:

- **Attach:** find the existing record by phone, add a note or task, keep one lead. Most teams prefer this.
- **New lead per campaign:** if the second call is to a different campaign number, create or tag
  separately so attribution stays correct.

## No CRM Yet?

If you are choosing a CRM mainly to work missed call leads, [Edesy CRM](https://edesy.in/crm) has a free plan and accepts
missed call leads through its custom webhook lead source with a one-time field mapping. See
[missed call to CRM](https://edesy.in/blog/missed-call-to-crm).

## Pricing

The missed call number is ₹499 per month plus ₹0.30 per webhook event delivered, or ₹1,498 per month for
the unlimited plan (all plus GST). Events that cannot be delivered after retries are not charged. Your CRM
licence is separate.

## Testing the Integration

Before printing the number on anything, run these checks with whoever set up the integration:

1. Send a test event from the missed call portal and confirm the integration accepts it.
2. Give a real missed call from a phone that is not in the CRM. A new record should appear with the right
   phone, source and owner.
3. Give another missed call from the same phone. Your repeat rule should apply (note or task, not a
   duplicate record).
4. Replay the first event from the delivery log. Nothing new should be created, because the `call_sid` is
   the same.
5. Take the integration offline for a few minutes, give a missed call, bring it back, and confirm the retry
   arrives.
6. Check that a report filtered by the source value shows the test leads, then delete them.

These six checks catch nearly every problem that otherwise shows up during a live campaign.

## Get It Set Up

[Get a Missed Call Number](https://missedcall.edesy.in/?utm_source=edesy.in&utm_medium=blog&utm_campaign=missed-call),
then tell us your CRM, the object and fields you want, and your duplicate rule. We connect Zoho CRM,
Salesforce, HubSpot, LeadSquared or an in-house CRM for you, usually within a few days. All options are on
the [CRM integration page](https://edesy.in/missed-call-service/crm-integration).

## Frequently Asked Questions

### Is there a native Zoho, Salesforce or HubSpot app for missed call leads?

No marketplace app is needed. We connect missed call leads to Zoho CRM, Salesforce or HubSpot for you, usually within a few days, using our signed webhook and REST API. Your developers can also build it themselves or use webhook middleware.

### Should a missed call create a lead or a contact?

In Zoho CRM and Salesforce, usually a Lead, because the caller is unqualified. In HubSpot, usually a Contact with a lifecycle stage of lead, plus a Lead record if your team uses that object.

### What data comes with each missed call?

The caller's phone number, the number they called, your label for that number (useful as lead source or campaign), a unique call ID and the time. There is no name or email; those come from the callback.

### How do I stop duplicate leads when someone calls twice?

Retried webhooks carry the same call_sid, so ignore repeats of it. For genuine repeat calls from the same person, search the CRM by phone number first and update the existing record or add a task instead of creating a new lead.

### Can I use Zapier or Make?

Yes, a catch-webhook step in Zapier or Make can receive the missed call event and create the record in your CRM. For production, a small service that verifies the HMAC signature is more robust.
