Back to Blog
DevelopersJuly 14, 20267 min read

By Piyush Kothiya, Founder of ExoCall

Connect ExoCall to Your CRM: Public API & Webhooks

A new lead fills your form. Two seconds later, your AI agent is calling them. A minute after they hang up, the scored, summarised result is sitting in your CRM. Here's how the new ExoCall API makes that a 30-minute integration.

Until now, getting leads into ExoCall meant uploading a CSV or typing a number into the dashboard, and getting results out meant reading the call logs page. That works when you run campaigns by hand — but the moment your leads come from a website form, a Facebook ad, or a CRM workflow, manual steps become the bottleneck.

With ExoCall's new public API and webhooks, the loop closes itself: your systems push leads in, the AI calls them, and the analysed results flow straight back — automatically, securely, and in real time.

Key Takeaway

ExoCall now offers a public REST API (Bearer-key authenticated) to trigger AI calls, bulk-add campaign contacts, and query call history — plus HMAC-signed webhooks that push every completed call and AI analysis to your CRM within about a minute of hang-up. Any tool that can make or receive an HTTP request can now drive AI calling in 12 Indian languages.

What's in the API

🔑

API keys you control

Create named Bearer keys (exo_live_...) in Settings → API & Webhooks — one per integration. Revoke any key instantly without touching the others.

📞

Trigger a call with one request

POST a phone number, name, and call purpose to /api/v1/leads and the AI dials immediately. Include a campaign_id instead to add the lead to a draft campaign.

📦

Bulk campaign contacts

Push up to 1,000 contacts into a campaign in a single request — phone, name, and per-lead notes the AI uses on the call.

📊

Query your call history

GET /api/v1/call-logs with filters for lead label, call type, date range, campaign, and phone search — or fetch one call with its full transcript and AI analysis.

From New Lead to Analysed Call — in One Flow

  1. 1

    Your CRM pushes the lead

    A new enquiry lands in your CRM or website form. Your automation POSTs the phone number, name, and a call purpose ("Follow up on demo request") to /api/v1/leads.

  2. 2

    The AI calls within seconds

    ExoCall dials the lead immediately using your agent persona and script — greeting them by name, in their language, with the purpose you supplied.

  3. 3

    call.completed fires

    The moment the call ends, ExoCall POSTs the phone, duration, and who ended the call to your webhook URL.

  4. 4

    call.analyzed fires

    Within about a minute, Gemini finishes analysing the recording and ExoCall pushes the full result: lead label, 1–5 score, summary, intent, sentiment, next action, and the complete transcript.

  5. 5

    Your CRM updates itself

    Your webhook handler writes the result to the lead record. Hot leads get routed to sales, callbacks get scheduled, and nobody exports a CSV ever again.

What a Webhook Delivery Looks Like

The call.analyzed event is the one most CRM workflows should use — it carries everything the AI learned from the call:

POST <your url> · X-Exocall-Event: call.analyzed · X-Exocall-Signature: sha256=…

{
  "event": "call.analyzed",
  "data": {
    "call_id": 1234,
    "phone": "09876543210",
    "duration_seconds": 142,
    "lead_label": "hot",
    "lead_score": 4,
    "summary": "Customer asked about pricing and EMI options...",
    "intent": "pricing",
    "sentiment": "positive",
    "key_insight": "Ready to buy if EMI option is available",
    "analysis_extra": {
      "call_outcome": "completed",
      "next_action": "Send EMI plan on WhatsApp, call back Thursday",
      "agent_performance": 4
    },
    "transcript": [ { "role": "agent", "text": "..." } ]
  }
}

Built for Production, Not Just Demos

ConcernHow ExoCall handles it
AuthenticationNamed Bearer keys per integration — create and revoke independently in Settings
Payload authenticityEvery webhook signed with HMAC-SHA256 over the raw body (X-Exocall-Signature header)
Your endpoint is downAutomatic retries after 1m, 5m, 30m, and 2h — delivery log visible in Settings
Endpoint keeps failingDisabled after 10 consecutive failures so calls are never slowed; re-enable in one click
TestingA "Send test event" button fires a ping so you can verify your handler before going live

What You Can Build With It

A few patterns our early API users are already running in production in 2026:

Speed-to-lead automation

Website form → /api/v1/leads → AI call within seconds. Research consistently shows contacting a lead in the first 5 minutes multiplies conversion — the API makes 5 seconds routine.

🔁

CRM round-trip

New CRM lead triggers a call; call.analyzed writes the label, score, and summary back to the same record. Sales opens the CRM to find leads pre-qualified.

📋

Nightly campaign top-up

A cron job pushes the day's fresh leads into a running campaign via /api/v1/campaigns/{id}/contacts — the dialler picks them up in the next calling window.

📈

Custom dashboards

Pull /api/v1/call-logs into your BI tool to chart hot-lead rate per campaign, language mix, and call outcomes alongside your revenue data.

Bottom Line

AI calling is most valuable when it disappears into your existing workflow. With the public API and webhooks, ExoCall stops being a dashboard you visit and becomes infrastructure your CRM quietly uses — leads flow in, calls happen, qualified results flow back.

Available now on all ExoCall accounts

Head to Settings → API & Webhooks to create your first key, and see the full endpoint reference with copy-paste curl examples at app.exocall.io/docs/api.

Frequently Asked Questions

Does ExoCall have a public API?

Yes. ExoCall has a public REST API at app.exocall.io/api/v1, authenticated with Bearer API keys you create in Settings → API & Webhooks. It lets you trigger AI calls to any lead, add up to 1,000 contacts to a campaign in one request, and query your full call history with filters — from any CRM, website form, or internal tool.

How do ExoCall webhooks work?

Add your endpoint URL in Settings → API & Webhooks and ExoCall POSTs call events to it as they happen: call.completed fires when a call ends, and call.analyzed fires when the AI analysis is ready (usually within a minute) with the lead label, score, summary, next action, and full transcript. Every delivery is signed with HMAC-SHA256 using your endpoint secret, and failed deliveries are retried after 1 minute, 5 minutes, 30 minutes, and 2 hours.

Can I trigger an AI phone call from my CRM automatically?

Yes. POST the lead's phone number, name, and a call purpose to /api/v1/leads and ExoCall's AI agent dials the lead immediately — speaking in the caller's language and following your agent's persona and script. Connect it to your CRM's "new lead" automation and every fresh enquiry gets a call within seconds of signing up.

Is the ExoCall API secure?

API requests use Bearer keys (prefixed exo_live_) that you can create, name, and revoke per integration in Settings. Webhook deliveries carry an X-Exocall-Signature header — an HMAC-SHA256 of the raw request body computed with your endpoint's whsec_ secret — so your server can verify every payload genuinely came from ExoCall. Keys and webhooks are scoped to your account only.

Which CRMs can ExoCall integrate with?

Any system that can make an HTTP request or receive one — which covers virtually every CRM. Native-code integrations, Zapier/Make-style automation platforms, Google Sheets scripts, LeadSquared, Zoho, HubSpot, Salesforce, or your own in-house tool: if it can call a REST API or accept a webhook, it can connect to ExoCall.

Plug AI Calling Into Your Stack

Book a free demo and we'll walk through connecting ExoCall to your CRM — most teams are live the same day.