IVR

IVR API and webhooks for your CRM

Know who is calling before your agent says hello. MsgClub sends every keypress, completed call and missed call to your CRM as it happens, and lets your app connect agents to customers with one API request.

  • ivr.input, call.completed, call.missed
  • Recording links in every event
  • Call patching by API
  • Works with any CRM
An ivr.input webhook payload showing the caller pressed 1 and was routed to sales, next to a CRM screen that pops up the caller's lead record

What is an IVR API?

An IVR API lets your own software work with a cloud phone system. Webhooks push call events, such as a keypress, a completed call or a missed call, to your CRM in real time, and API requests let your app start actions, such as connecting an agent and a customer on one call, without anyone using the web panel.

Style
REST over HTTPS with JSON
Auth
API key, kept on your server
Webhook events
ivr.input, call.completed, call.missed
Actions
Connect two parties (call patching)
Same key
Also sends SMS, WhatsApp and other channels
Docs
Shared when you get API access

Updated

Which call events does MsgClub send?

Each event is an HTTPS POST to the URL you register, with a JSON body and a unique event ID.

IVR webhook events
EventWhen it firesTypical useKey fields
ivr.inputThe caller presses a key in a menuScreen-pop the lead, tag the enquiry typecall ID, caller, number dialled, menu, digits, routed to
call.completedA call ends, answered or notLog the call, attach the recording, update the stagecall ID, caller, agent, status, duration, recording link
call.missedNobody answers, or the caller hangs up in the menu or queueCreate a callback task, send an SMS or WhatsAppcall ID, caller, number dialled, last option, time

What does a call webhook look like?

Your endpoint receives a JSON body like this for each event. Match the caller number to a record, save what you need, and reply with a 2xx status straight away.

  • Use event_id to ignore duplicates
  • Use call_id to tie ivr.input and call.completed together
  • Store the recording link, not the audio file
POST https://your-crm.example.com/msgclub/calls
Content-Type: application/json

{
  "event": "call.completed",
  "event_id": "evt_7d31a9",
  "call_id": "c_20931",
  "from": "+9198XXXXX210",
  "to": "1800120XXXX",
  "menu_path": ["main:1"],
  "agent": "rahul.201",
  "status": "answered",
  "duration_sec": 192,
  "recording_url": "https://...",
  "timestamp": 1763100920
}

Illustrative example. Exact endpoints and field names are in the API docs, shared when you get API access.

How does a CRM screen-pop work?

The caller's record opens on the agent's screen while the phone is still ringing, so nobody has to ask "may I have your number?"

CallerDials your number and presses 1IVR routes to Rahul in sales
ivr.input
Your CRMLooks up +91 98XXX XX210Finds Priya Sharma, lead #4471
Agent screenLead card pops up for RahulHistory, stage and notes in view
call.completed
Your CRMCall logged with recordingDuration and outcome saved

Can I connect an agent and a customer from my app?

Yes, with call patching. Your CRM sends one request with the agent's number and the customer's number. MsgClub calls both numbers and joins them on a single call. The customer sees your business number, the call can be recorded, and a call.completed event comes back when it ends.

Use it for a "Call now" button on a lead, for calling a new web enquiry within minutes, or for connecting customers with riders through call masking.

POST {API_BASE_URL}/calls/connect
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "agent": "+9198XXXXX201",
  "customer": "+9198XXXXX210",
  "caller_id": "1800120XXXX",
  "record": true,
  "ref": "lead_4471",
  "webhook_url": "https://your-crm.example.com/msgclub/calls"
}

Illustrative example. Exact endpoints and field names are in the API docs, shared when you get API access.

How do you connect MsgClub IVR to your CRM?

  1. Get API accessWe share your API key and the IVR API docs for your account.
  2. Create an endpointAn HTTPS URL in your CRM or middleware that accepts JSON POSTs.
  3. Register eventsChoose ivr.input, call.completed and call.missed.
  4. Match callersLook up the number; create a lead if it is new.
  5. Save outcomesOption, agent, duration and recording link; reply 2xx fast.
  6. Test and go livePlace test calls and check each event arrives once.

No developer? Pass call events to Google Sheets or your CRM through Zapier, or download reports from the panel. The same API key also sends SMS and WhatsApp follow-ups. For every channel and event in one place, see API and webhooks and the developer docs. Plans are explained on the pricing page; for help, contact us. Back to IVR or see call recording.

Frequently asked questions

Which IVR events can I receive by webhook?

The main events are ivr.input when a caller presses a key, call.completed when a call ends, with duration, agent and recording link, and call.missed when a call is not answered. Exact field names are in the API documentation shared when you get API access.

Can my CRM show who is calling before the agent answers?

Yes. Use the ivr.input event, which arrives as soon as the caller picks an option. Your CRM looks up the caller number and opens the matching lead or ticket on the agent's screen, so the agent knows who is calling and why.

Can I start a call from my CRM?

Yes. With call patching, your system sends an API request with the agent's and the customer's numbers. MsgClub calls both and connects them, so your team can click to call without dialling manually, and the call is logged and can be recorded.

Which CRMs does the IVR API work with?

Any CRM or app that can receive an HTTPS webhook or call a REST API, including in-house systems. Teams also connect tools such as Salesforce, Zoho CRM, HubSpot or LeadSquared through their own webhook features, middleware or Zapier, rather than a native plug-in.

Do I need a developer to use IVR webhooks?

A developer or a no-code tool is needed to receive webhooks. If you do not have one, use Zapier to pass call events into Google Sheets or your CRM, or download call reports from the panel instead.

How do I avoid duplicate records from webhooks?

Webhooks can be retried if your endpoint does not respond in time, so the same event may arrive twice. Store the event ID from each payload and skip any event you have already processed, and reply with a 2xx status quickly.

Start sending in minutes

Create a free account to test the panel and API, or talk to our team about volumes, DLT setup and CRM integration.