What you need
- An agent that answers the phone, with a number.
- An API key, from Settings → API keys.
- An account on a connector tool (Pabbly Connect, Make or Zapier).
1. Write the agent for this call
On the agent’s Instructions, describe the call. Use{{…}} for anything the
CRM will tell it about the lead:
2. When a lead arrives, place the call
In your connector tool, start a flow from your CRM’s new lead trigger, and add an HTTP step:- The lead does not need to be in your contacts first — it is added, with the name and source you sent.
- A lead that arrives at 11pm gets
"status": "scheduled"and is rung at 10am in their own time. Use"ifOutsideHours": "refuse"if you would rather decide yourself. - The
Idempotency-Keymeans a CRM that fires the trigger twice still rings the lead once.
3. Send the results back
On the agent’s Actions page, under Send what happens somewhere else, add your connector tool’s webhook address and tick A call’s results are ready. Copy the signing secret. In a second flow, start from that webhook. Each call sends one delivery:
A field the lead did not answer is simply missing from
fields, so map each one
as optional. A missed call still sends a delivery, with status: "missed" and
no summary.
4. Try it end to end
Create a test lead in your CRM with your own number. Within a minute your phone should ring; answer as a buyer would. A few seconds after you hang up, the lead should show the note, the fields and the link. If the result does not arrive, read it directly — it is the same object:Things worth knowing
- Who is refused. Anyone who told your agent to stop, on any channel, and any
number on your do-not-call list.
sourceis your record of why you had the number — keep it honest. - Calling rules. Calls are only ever placed between 9am and 9pm in the lead’s own time, and never earlier or later whatever you send. Promotional calling in India also needs DLT registration and DND checks on your side.
- The lead converted while the phone rang.
DELETE /api/v1/calls/{id}cancels a call still waiting, and ends one that is ringing or connected — see Cancelling or ending a call. - A different number or voice for some leads. Send
from(one of the agent’s numbers) oroverrideson the call; the agent itself is not changed. - Fields every call should fill. Set them once on the agent as
collectFields(Agents) instead of sendingextracteach time. - Only answers the lead gave. Fields are filled from what the customer said
on that call. Nothing is guessed, and a
numberfield gets a number or nothing — “80 lakh” arrives as8000000.